Comprimir una serie de archivos con el fin de ahorrar espacio en disco puede ser una tarea necesaria en tu trabajo diario con Python. En esta guía rápida, aprenderás cómo hacerlo.
El módulo zipfile
de la biblioteca estándar de Python permite manipular archivos en formato ZIP que es un formato estándar para comprimir y archivar datos. Con este módulo, puedes crear, leer, escribir, extraer y listar archivos contenidos dentro de archivos ZIP.
Pasos resumidos
Para comprimir archivos usando el módulo zipfile
en Python, puedes seguir los siguientes pasos:
- Importar el módulo
zipfile
. - Instanciar la clase
ZipFile
en modo de escritura ("w"
) para crear un nuevo archivo ZIP. - Elegir el método de compresión.
- Comprimir los archivos en el archivo ZIP usando el método
.write()
.
Estos pasos te permitirán crear y comprimir archivos en un archivo ZIP utilizando Python. El código necesario es el siguiente:
import zipfile
with zipfile.ZipFile(
"archivo.zip",
mode="w",
compression=zipfile.ZIP_DEFLATED
) as zip_file:
zip_file.write("archivo_0.txt")
zip_file.write("archivo_1.txt")
A continuación una discusión más detallada de cada uno de estos pasos y su código Python asociado.
Paso 1: Importar el módulo zipfile
Primero, necesitas importar el módulo zipfile
en tu script:
import zipfile
Paso 2: Instanciar la clase ZipFile
La clase ZipFile
funciona de modo similar a la función incorporada open()
de Python, permitiéndote abrir archivos ZIP. Para instanciar la clase, emplearás tres argumentos:
file
: El nombre del archivo ZIP resultante.mode
: El modo de apertura que puede ser modo de lectura ("r"
), escritura ("w"
), anexar ("a"
) y exclusivo ("x"
).compression
: El método de compresión deseado.
Esta clase funciona como un gestor de contexto, por lo que puedes utilizarla dentro de una sentencia with
. Como nombre de archivo, puedes emplear cualquier identificador de archivo válido en tu sistema operativo seguido de la extensión .zip
.
Paso 3: Elegir el método de compresión
Para comprimir archivos mientras los escribes en un archivo ZIP, puedes usar alguno de los modos de compresión siguientes con la constante apropiada:
Método de compresión | Constante | Módulo requerido |
---|---|---|
Deflate | zipfile.ZIP_DEFLATED |
zlib |
Bzip2 | zipfile.ZIP_BZIP2 |
bz2 |
LZMA | zipfile.ZIP_LZMA |
lzma |
Estos son los métodos de compresión que actualmente puedes usar con ZipFile
. Usar un método diferente generará un NotImplementedError
. El método más comúnmente usado es ZIP_DEFLATED
.
Paso 4: Comprimir los archivos en el archivo ZIP
Ahora, supón que necesitas comprimir los archivos archivo_0.txt
y archivo_1.txt
que se encuentran en tu directorio de trabajo actual. Puedes lograrlo con el siguiente código:
with zipfile.ZipFile(
"archivo.zip",
mode="w",
compression=zipfile.ZIP_DEFLATED
) as zip_file:
zip_file.write("archivo_0.txt")
zip_file.write("archivo_1.txt")
Este código crea un archivo ZIP llamado archivo.zip
y lo abre en modo de escritura. Luego, utiliza el algoritmo Deflate para comprimir los archivos dentro del archivo ZIP. Dentro del bloque de la sentencia with
, se agregan los archivos a comprimir utilizando el método .write()
.
Resumiendo
Para comprimir archivos usando el módulo zipfile
en Python, puedes seguir los siguientes pasos:
- Importar el módulo
zipfile
. - Instanciar la clase
ZipFile
en modo de escritura ("w"
) para crear un nuevo archivo ZIP. - Elegir el método de compresión.
- Comprimir los archivos en el archivo ZIP usando el método
.write()
.
Estos pasos te permiten crear un archivo ZIP y comprimir los archivos deseados utilizando Python.