Python – Crear archivo ZIP

En este ejemplo veremos como crear un archivo ZIP con Python, comprimiremos cuatro archivos de texto, pero se puede hacer el ejemplo con cualquier tipo y cantidad de archivos o ficheros:

» Más ejemplos de Python

Crear archivo ZIP

En nuestro código importamos el paquete zipfile.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import zipfile
try:
import zlib
compression = zipfile.ZIP_DEFLATED
except:
compression = zipfile.ZIP_STORED
zf = zipfile.ZipFile("/home/decodigo/Documentos/python/archivos/archivo_ejemplo.zip", mode="w")
try:
zf.write("/home/decodigo/Documentos/python/archivos/archivo1.txt", compress_type=compression)
zf.write("/home/decodigo/Documentos/python/archivos/archivo2.txt", compress_type=compression)
zf.write("/home/decodigo/Documentos/python/archivos/archivo3.txt", compress_type=compression)
zf.write("/home/decodigo/Documentos/python/archivos/archivo4.txt", compress_type=compression)
finally:
zf.close()
import zipfile try: import zlib compression = zipfile.ZIP_DEFLATED except: compression = zipfile.ZIP_STORED zf = zipfile.ZipFile("/home/decodigo/Documentos/python/archivos/archivo_ejemplo.zip", mode="w") try: zf.write("/home/decodigo/Documentos/python/archivos/archivo1.txt", compress_type=compression) zf.write("/home/decodigo/Documentos/python/archivos/archivo2.txt", compress_type=compression) zf.write("/home/decodigo/Documentos/python/archivos/archivo3.txt", compress_type=compression) zf.write("/home/decodigo/Documentos/python/archivos/archivo4.txt", compress_type=compression) finally: zf.close()
import zipfile
try:
    import zlib
    compression = zipfile.ZIP_DEFLATED
except:
    compression = zipfile.ZIP_STORED

zf = zipfile.ZipFile("/home/decodigo/Documentos/python/archivos/archivo_ejemplo.zip", mode="w")

try:
    zf.write("/home/decodigo/Documentos/python/archivos/archivo1.txt", compress_type=compression)
    zf.write("/home/decodigo/Documentos/python/archivos/archivo2.txt", compress_type=compression)
    zf.write("/home/decodigo/Documentos/python/archivos/archivo3.txt", compress_type=compression)
    zf.write("/home/decodigo/Documentos/python/archivos/archivo4.txt", compress_type=compression)
finally:
    zf.close()

Las líneas de código que debes modificar son las siguientes:

Primero debes especificar que el archivo estará comprimido, importando el módulo zlib y definiendo el tipo de almacenamiento en el ZIP, usando

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
compression = zipfile.ZIP_DEFLATED.
compression = zipfile.ZIP_DEFLATED.
compression = zipfile.ZIP_DEFLATED.

Debes hacerlo dentro de una sentencia try except ya que este paso puede generar un error en cuyo caso cambiará el tipo de compresión.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
try:
import zlib
compression = zipfile.ZIP_DEFLATED
except:
compression = zipfile.ZIP_STORED
try: import zlib compression = zipfile.ZIP_DEFLATED except: compression = zipfile.ZIP_STORED
try:
    import zlib
    compression = zipfile.ZIP_DEFLATED
except:
    compression = zipfile.ZIP_STORED

Después creamos el archivo ZIP de ejemplo.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
zf = zipfile.ZipFile("/home/decodigo/Documentos/python/archivos/archivo_ejemplo.zip", mode="w")
zf = zipfile.ZipFile("/home/decodigo/Documentos/python/archivos/archivo_ejemplo.zip", mode="w")
zf = zipfile.ZipFile("/home/decodigo/Documentos/python/archivos/archivo_ejemplo.zip", mode="w")

A cada archivo lo agregamos usando la función write.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
zf.write("/home/decodigo/Documentos/python/archivos/archivo1.txt", compress_type=compression)
zf.write("/home/decodigo/Documentos/python/archivos/archivo2.txt", compress_type=compression)
zf.write("/home/decodigo/Documentos/python/archivos/archivo3.txt", compress_type=compression)
zf.write("/home/decodigo/Documentos/python/archivos/archivo4.txt", compress_type=compression)
zf.write("/home/decodigo/Documentos/python/archivos/archivo1.txt", compress_type=compression) zf.write("/home/decodigo/Documentos/python/archivos/archivo2.txt", compress_type=compression) zf.write("/home/decodigo/Documentos/python/archivos/archivo3.txt", compress_type=compression) zf.write("/home/decodigo/Documentos/python/archivos/archivo4.txt", compress_type=compression)
zf.write("/home/decodigo/Documentos/python/archivos/archivo1.txt", compress_type=compression)
zf.write("/home/decodigo/Documentos/python/archivos/archivo2.txt", compress_type=compression)
zf.write("/home/decodigo/Documentos/python/archivos/archivo3.txt", compress_type=compression)
zf.write("/home/decodigo/Documentos/python/archivos/archivo4.txt", compress_type=compression)

El resultado será algo como esto:

Crear archivo ZIP

El archivo archivo_ejemplo.zip, contendrá los archivos que especificamos en código: archivo1.txt, archivo2.txt, archivo3.txt y archivo4.txt.

Y ya está, se trata de un ejemplo de crear un archivo ZIP sencillo que esperamos te sea de utilidad.

Más información en inglés: https://geekole.com/create-zip-files-in-python/