Python Archivo ZIP con ejemplo

Python le permite crear rรกpidamente archivos zip/tar.

El siguiente comando comprimirรก todo el directorio

shutil.make_archive(output_filename, 'zip', dir_name)

El siguiente comando le brinda control sobre los archivos que desea archivar.

ZipFile.write(filename)

Estos son los pasos para crear un archivo Zip en Python

Paso 1) Para crear un archivo de almacenamiento desde PythonAsegรบrese de que la declaraciรณn de importaciรณn sea correcta y estรฉ en orden. Aquรญ, la declaraciรณn de importaciรณn para el archivo es from shutil import make_archive

Python ZIP

Explicaciรณn del cรณdigo

  • Importar la clase make_archive desde el mรณdulo shutil
  • Utilice la funciรณn de divisiรณn para dividir el directorio y el nombre del archivo de la ruta a la ubicaciรณn del archivo de texto (guru99)
  • Luego llamamos al mรณdulo โ€œshutil.make_archive(โ€œguru99 archive, โ€œzipโ€, root_dir)โ€ para crear un archivo de almacenamiento, que estarรก en formato zip.
  • Luego pasamos el directorio raรญz de las cosas que queremos comprimir. Entonces todo lo que estรฉ en el directorio se comprimirรก.
  • Cuando ejecuta el cรณdigo, puede ver que el archivo zip se crea en el lado derecho del panel.

Paso 2) Una vez que haya creado su archivo de almacenamiento, puede hacer clic derecho en el archivo y seleccionar el sistema operativo, y se mostrarรกn sus archivos de almacenamiento como se muestra a continuaciรณn.

Python ZIP

Ahora su archivo archive.zip aparecerรก en su sistema operativo (Windows explorer)

Python ZIP

Paso 3) Al hacer doble clic en el archivo, verรก la lista de todos los archivos que contiene.

Python ZIP

Paso 4) In Python Podemos tener mรกs control sobre el archivo ya que podemos definir quรฉ archivo especรญfico incluir en el archivo. En nuestro caso, incluiremos dos archivos en el archivo. โ€œguru99.txtโ€ y โ€œguru99.txt.bakโ€.

Python ZIP

Explicaciรณn del cรณdigo

  • Importar clase Zipfile desde un archivo zip Python mรณdulo. Este mรณdulo brinda control total sobre la creaciรณn de archivos zip.
  • Creamos un nuevo Zipfile con nombre (โ€œtestguru99.zip, โ€œwโ€)
  • Para crear una nueva clase Zipfile, es necesario pasar permiso porque es un archivo, por lo que debe escribir informaciรณn en el archivo como newzip.
  • Usamos la variable "newzip" para referirnos al archivo zip que creamos.
  • Usando la funciรณn de escritura en la variable โ€œnewzipโ€, agregamos los archivos โ€œguru99.txtโ€ y โ€œguru99.txt.bakโ€ al archivo

Cuando ejecuta el cรณdigo, puede ver que el archivo se crea en el lado derecho del panel con el nombre "guru99.zip".

Nota: : Aquรญ no damos ningรบn comando para "cerrar" el archivo como "newzip.close" porque usamos el bloqueo de alcance "Con", por lo que cuando el programa queda fuera de este alcance, el archivo se limpiarรก y se cerrarรก automรกticamente.

Paso 5) Cuando -> haga clic derecho en el archivo (testguru99.zip) y -> seleccione su sistema operativo (Windows explorer), mostrarรก los archivos almacenados en la carpeta como se muestra a continuaciรณn.

Python ZIP

Al hacer doble clic en el archivo โ€œtestguru99.zipโ€, se abrirรก otra ventana y en ella se mostrarรกn los archivos incluidos en ella.

Python ZIP

Aquรญ estรก el cรณdigo completo

Python 2 Ejemplo

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

def main():
# Check if file exists
	if path.exists("guru99.txt"):
# get the path to the file in the current directory
	src = path.realpath("guru99.txt");
# rename the original file
	os.rename("career.guru99.txt","guru99.txt")
# now put things into a ZIP archive
	root_dir,tail = path.split(src)
    shutil.make_archive("guru99 archive", "zip", root_dir)
# more fine-grained control over ZIP files
	with ZipFile("testguru99.zip","w") as newzip:
	newzip.write("guru99.txt")
	    newzip.write("guru99.txt.bak")
if __name__== "__main__":
	  main()

Python 3 Ejemplo

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

    # Check if file exists
       if path.exists("guru99.txt"):
    # get the path to the file in the current directory
        src = path.realpath("guru99.txt");
    # rename the original file
        os.rename("career.guru99.txt","guru99.txt")
    # now put things into a ZIP archive
        root_dir,tail = path.split(src)
        shutil.make_archive("guru99 archive","zip",root_dir)
    # more fine-grained control over ZIP files
        with ZipFile("testguru99.zip", "w") as newzip:
            newzip.write("guru99.txt")
            newzip.write("guru99.txt.bak")

Resumen

  • Para comprimir un directorio completo, utilice el comando โ€œshutil.make_archive(โ€œnameโ€,โ€zipโ€, root_dir)
  • Para seleccionar los archivos a comprimir use el comando โ€œZipFile.write(nombre de archivo)โ€

Resumir este post con: