Crear un archivo zip de un directorio usando Python

Vaibhav Vaibhav 18 abril 2022
Crear un archivo zip de un directorio usando Python

El archivo zip es un formato de archivo que contiene uno o más archivos comprimidos. Admite la compresión de datos sin pérdida y es el formato de archivo más utilizado en todo el mundo. Este artículo nos ayudará a aprender las formas de convertir un directorio en un archivo zip utilizando el lenguaje de programación Python.

Uso de la biblioteca shutil para crear un archivo zip de un directorio

La biblioteca shutil es parte del Python estándar. Ofrece varias funciones de alto nivel para realizar sobre archivos o grupos de archivos, como copiar, comprimir, descomprimir y eliminar. Tiene una función o método llamado make_archive() que puede convertir cualquier directorio o carpeta en un archivo zip. Los siguientes son los argumentos más utilizados de esta función.

  • base_name: Nombre del archivo a crear junto con la ruta y sin ninguna extensión de formato.
  • format: Es el nombre del formato del archivo. Las opciones disponibles son zip (requiere módulo zlib), tar, gztar (requiere módulo zlib), bztar (requiere módulo bz2) y xztar (requiere lzma módulo).
  • root_dir: es el directorio que será el directorio raíz del archivo, lo que significa que todas las rutas del archivo serán relativas a él. El valor predeterminado es el directorio actual.
  • base_dir: es el directorio desde donde se inicia el archivo. Su valor debe ser relativo al root_dir. El valor predeterminado es el directorio actual.

Ahora que hemos terminado con una breve teoría sobre el paquete y la función requerida, aprendamos cómo podemos usar esta función para crear un archivo zip desde un directorio.

import os
import shutil

filename = "compressed"
format = "zip"
directory = os.getcwd()
shutil.make_archive(filename, format, directory)

El código anterior comprimirá el directorio de trabajo actual en un archivo zip y nombrará el archivo como compressed.zip. Tenga en cuenta que no mencionamos la extensión (.zip) en el base_name.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Artículo relacionado - Python Dictionary