Decomprimere i file in Python

Azaz Farooq 30 marzo 2021
  1. Decomprimere i file in Python usando il metodo extractall() nella directory di lavoro
  2. Decomprimere i file in Python usando il metodo extractall() in una directory diversa
  3. Decomprimere i file in Python usando il metodo extractall() basato sulla condizione
  4. Decomprimere i file in Python usando il metodo unpack_archive()
Decomprimere i file in Python

Un file ZIP ha un formato di file di archivio e aiuta nella compressione dei dati senza perdita di dati. Un singolo file ZIP può contenere più di un file compresso. In un file ZIP, più file vengono trasferiti più velocemente di un singolo file e diminuisce la dimensione dei dati. Il modulo ZipFile integrato in Python potrebbe essere usato per decomprimere i file Zip.

Questo articolo discuterà i diversi metodi per estrarre i file compressi o Zip in Python.

Decomprimere i file in Python usando il metodo extractall() nella directory di lavoro

Per prima cosa importiamo il modulo zipfile integrato in Python usando il comando seguente.

from zipfile import ZipFile

Il codice di esempio completo è il seguente:

from zipfile import ZipFile

test_file_name = "my_files.zip"

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

La r nella funzione ZipFile rappresenta l’operazione di lettura del file, mentre la funzione extractall() estrarrà il contenuto del file zip nella directory di lavoro corrente.

Produzione:

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

Decomprimere i file in Python usando il metodo extractall() in una directory diversa

Questo metodo estrae i file zip ma in una directory diversa. La differenza principale è che passeremo la directory di destinazione come argomento nel metodo extractall().

Il codice di esempio completo è il seguente:

from zipfile import ZipFile

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

Una nuova directory temp verrà creata nella directory di lavoro corrente e tutti i file zip verranno estratti lì.

Produzione:

Files are unzipped in temp folder

Decomprimere i file in Python usando il metodo extractall() basato sulla condizione

Questo metodo è utile quando si dispone di un numero elevato di file in un file zip ed è necessario estrarre file con un’estensione specifica. Ad esempio, estrarremo i file .txt dal file zip.

Il codice di esempio completo è il seguente:

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 funzione namelist() restituisce i nomi di tutti i file nel file zip.

Il metodo endswith()controlla se il nome del file finisce con .txt. In tal caso, la funzione extract() estrarrà i file .txt nella cartella temp_txt nella directory di lavoro corrente.

Decomprimere i file in Python usando il metodo unpack_archive()

Questo metodo usa il modulo shutil integrato in Python. Estrarrà tutti i formati di file archiviati.

Il codice di esempio completo è il seguente:

import shutil

shutil.unpack_archive("test.zip")

I file estratti si troveranno nella directory di lavoro corrente in cui stai eseguendo questo script.