Cómo crear archivos zip usando Python

En este artículo, te mostraremos cómo puedes crear tus propios archivos zip utilizando Python. Si te perdiste el artículo de la semana pasada sobre cómo leer archivos zip, te sugiero que regreses y le eches un vistazo rápido. Utilizaremos los mismos archivos de ese ejemplo: dos archivos de texto llamados "file1.txt" y "file2.txt".

Índice de Contenido
  1. Crear un archivo zip
  2. Extraer archivos zip

Crear un archivo zip

Si simplemente quieres crear un nuevo archivo zip con tus archivos dentro, es solo cuestión de unas pocas líneas utilizando el módulo zipfile. Primero, crea el archivo en modo escritura:


import zipfile
z = zipfile.ZipFile("test2.zip", "w")

Luego, comienza a agregar los archivos:


z.write("file1.txt")
z.write("file2.txt")

¡Eso es básicamente todo! El módulo zipfile se encarga de todos los detalles de apertura y lectura de los archivos, comprimiéndolos e insertándolos en el archivo zip. ¿No me crees? Entonces echemos un vistazo. Primero cerramos el archivo y luego lo volvemos a abrir en modo lectura:


z.close()
z = zipfile.ZipFile("test2.zip")
z.printdir()

El método printdir() de un archivo zip funciona de manera similar a la función que escribimos en el último artículo para imprimir los archivos en el archivo zip. También puedes verificar que los archivos contienen los datos que esperamos:


print z.read("file1.txt")

¡Pero qué pasa si queremos agregar archivos a un archivo zip existente? Es bastante simple, solo necesitamos abrir el archivo en modo añadir. Abrir un archivo zip existente en modo escritura borrará el archivo zip, así que ten cuidado al usar ese modo.

El futuro del paradigma de programación: hacia lenguajes intencionales

Supongamos que hay un "file3.txt" con el siguiente contenido:


File Three Contents

1234567890

Lo agregamos al archivo zip que acabamos de hacer (test2.zip) con el siguiente código:


import zipfile
z = zipfile.ZipFile("test2.zip", "a")
z.printdir()
z.write("file3.txt")
z.printdir()
z.close()

Extraer archivos zip

Finalmente, puedes escribir un programa para extraer archivos zip al disco en solo unas pocas líneas. El siguiente programa Python extrae todos los archivos zip proporcionados como argumentos al directorio actual:


from zipfile import *
import sys

for zipname in sys.argv[1:]:
    z = ZipFile(zipname)
    for filename in z.namelist():
        outfile = file(filename, "w")
        outfile.write(z.read(filename))
        outfile.close()

En acción, se ve así:


$ ls
test2.zip unzip.py
$ python unzip.py test2.zip 
$ ls
file1.txt file2.txt file3.txt test2.zip unzip.py
$ cat file1.txt 
File One Contents

"Testing, testing, one two three."

Ten cuidado, este programa simple solo funcionará si el archivo zip tiene una estructura de archivos plana, es decir, no contiene directorios anidados. Si los contiene, deberás ajustar el programa para crear los directorios según sea necesario, pero dejaré esa extensión a tu criterio.

Alerta de vulnerabilidad en el entorno de ejecución Java Runtime Environment

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Desarrollo, allí encontraras muchos artículos similares a Cómo crear archivos zip usando Python , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.