Cómo descomprimir archivos en Python

Azaz Farooq 10 octubre 2023
  1. Descomprimir los archivos en Python usando el método extractall() al directorio de trabajo
  2. Descomprimir archivos en Python usando el método extractall() a un directorio diferente
  3. Descomprimir los archivos en Python usando el método extractall() basado en la condición
  4. Descomprimir archivos en Python usando el método unpack_archive()
Cómo descomprimir archivos en Python

Un archivo ZIP tiene un formato de archivo y ayuda a la compresión de datos sin pérdidas. Un solo archivo ZIP puede contener más de un archivo comprimido. En un archivo ZIP, varios archivos se transfieren más rápido que uno solo, y esto disminuye el tamaño de los datos. El módulo ZipFile incorporado en Python puede ser usado para descomprimir los archivos Zip.

Este artículo tratará sobre los diferentes métodos para extraer los archivos comprimidos o Zip en Python.

Descomprimir los archivos en Python usando el método extractall() al directorio de trabajo

Primero importemos el módulo zipfile incorporado en Python usando el siguiente comando.

from zipfile import ZipFile

El código de ejemplo completo es el siguiente:

from zipfile import ZipFile

test_file_name = "my_files.zip"

with ZipFile(test_file_name, "r") as zip:
    zip.printdir()
    zip.extractall()

La r de la función ZipFile representa la operación de lectura del archivo, mientras que la función extractall() extraerá el contenido del archivo zip al directorio de trabajo actual.

Resultado:

 File Name         Modified                  Size
file1.txt          2020-11-09 23:03:06        0
file2.txt          2020-11-09 23:03:18        0

Descomprimir archivos en Python usando el método extractall() a un directorio diferente

Este método extrae los archivos zip pero a un directorio diferente. La principal diferencia es que pasaremos el directorio de destino como argumento en el método extractall().

El código de ejemplo completo es el siguiente:

from zipfile import ZipFile

with ZipFile("my_files.zip", "r") as zip:
    zip.extractall("temp")
    print("File is unzipped in temp folder")

Se creará un nuevo directorio temp en el directorio de trabajo actual, y todos los archivos zip se extraen allí.

Resultado:

Files are unzipped in temp folder

Descomprimir los archivos en Python usando el método extractall() basado en la condición

Este método es útil cuando se tiene un gran número de archivos en un archivo zip, y se necesita extraer archivos con una extensión específica. Por ejemplo, extraeremos los archivos .txt del archivo zip.

El código completo del ejemplo es el siguiente:

from zipfile import ZipFile

with ZipFile("my_files.zip", "r") as obj_zip:
    FileNames = obj_zip.namelist()
    for fileName in FileNames:
        if fileName.endswith(".txt"):
            zipObj.extract(fileName, "temp_txt")

La función namelist() devuelve los nombres de todos los archivos del archivo zip.

El método endswith() comprueba si el nombre del archivo termina con .txt. Si es así, la función extract() extraerá los archivos .txt a la carpeta temp_txt en el directorio de trabajo actual.

Descomprimir archivos en Python usando el método unpack_archive()

Este método utiliza el módulo shutil incorporado en Python. Extraerá todos los formatos de los archivos archivados.

El código de ejemplo completo es el siguiente:

import shutil

shutil.unpack_archive("test.zip")

Los archivos extraídos estarán en el directorio de trabajo actual donde estás ejecutando este script.