Python Unzip File: come estrarre file singoli o multipli
Il Settembre 24, 2021 da adminPython ZipFile è una classe di modulo zipfile per leggere e scrivere file zip. ZIP è il formato di file di archivio che supporta la compressione dei dati senza perdite.
Per compressione senza perdite, intendiamo che l’algoritmo di compressione permette di ricostruire interamente i dati originali dai dati compressi.
Un file ZIP è un singolo file contenente uno o più file compressi, che offre un modo semplice per rendere più piccoli i file di grandi dimensioni e tenere insieme i file correlati.
Python unzip file
Per lavorare sui file zip usando Python, useremo un modulo python integrato chiamato zipfile. Nel modulo zipfile di Python, la classe ZipFile fornisce una funzione membro per estrarre tutto il contenuto dell’archivio ZIP.
Per decomprimere un file in Python, usate il metodo ZipFile.extractall(). Il metodo extractall() prende un percorso, membri, pwd come argomento, ed estrae tutto il contenuto.
Sintassi
ZipFile.extractall(path=None, members=None, pwd=None)
Accetta i seguenti parametri :
- path: posizione dove il file zip deve essere estratto; se non fornito, estrarrà il contenuto nella directory corrente.
- members: lista di file da estrarre. Estrarrà tutti i file nello zip se questo argomento non è fornito.
- pwd: Se il file zip è criptato, allora passa la password in questo argomento, il default è None.
Esempio di Python unzip
Diciamo che, nella mia directory di lavoro corrente, ho un file zip chiamato Mail3.zip, e voglio decomprimerlo usando ZipFile.extractall().
Vedi il seguente codice.
# app.pyfrom zipfile import ZipFilewith ZipFile('Mail3.zip', 'r') as zipObj: # Extract all the contents of zip file in current directory zipObj.extractall()
Output
python3 app.py
Estrarrà i file nella stessa directory del tuo file di programmazione app.py.
Estrarrà tutti i file nello zip nella directory corrente. Se i file con lo stesso nome sono già presenti nella posizione di estrazione, sovrascriverà quei file.
Abbiamo usato l’istruzione Python with per aprire i file. “Python with” assicura che i descrittori di file aperti siano chiusi automaticamente dopo che l’esecuzione del programma lascia il contesto dell’istruzione with.
Estrarre tutti i file da un file zip in un’altra directory
Possiamo estrarre tutti i file dal file zip in un’altra directory, e per farlo, dobbiamo passare il percorso di destinazione come argomento in extractall(). Il percorso può essere relativo o assoluto.
Vedi il seguente codice.
# app.pyfrom zipfile import ZipFilewith ZipFile('Mail3.zip', 'r') as zipObj: # Extract all the contents of zip file in different directory zipObj.extractall('temp') print('File is unzipped in temp folder')
Qui, un oggetto ZipFile viene creato chiamando un costruttore ZipFile, che accetta il nome del file zip e parametri di modalità. Creiamo l’oggetto ZipFile in modalità READ e lo nominiamo come zipObj.
In uscita. Se la cartella temp non c’è, creerà quella cartella nella directory corrente e decomprimerà tutto il contenuto del file Mail3.zip.
Output
python3 app.pyFile is unzipped in temp folder
Estrarre i file da un grande file zip in base alla condizione
Diciamo che abbiamo un enorme file zip, e abbiamo bisogno di alcuni file da migliaia di file nell’archivio. Decomprimere tutti i file da un grande zip può richiedere minuti. Ma se siete interessati solo ad alcuni dei file archiviati, allora invece di decomprimere l’intero file, possiamo estrarre anche il singolo file dal file zip.
La classe ZipFile di Python fornisce una funzione membro per estrarre un singolo da un file ZIP.
ZipFile.extract(member, path=None, pwd=None)
Vedi il seguente codice.
# app.pyfrom zipfile import ZipFilewith ZipFile('Mail3.zip', 'r') as zipObject: listOfFileNames = zipObject.namelist() for fileName in listOfFileNames: if fileName.endswith('.py'): # Extract a single file from zip zipObject.extract(fileName, 'temp_py') print('All the python files are extracted')
Se i nomi dei file hanno l’estensione .py, allora verrà estratto nella cartella temp_py. Altrimenti, non estrarrà i file.
Conclusione
Compattare i file in Python è molto facile perché Python fornisce il modulo zipfile.
Il modulo zipfile ha tutte le funzioni di decomprimere file singoli o multipli in base alle condizioni.
Finalmente, il tutorial Python Unzip: come estrarre file singoli o multipli è finito.
Vedi anche
Python zip()
Python zip lista di liste
Python zip dizionario
Scompatta le tuple in Python
Python lista in dataframe
Python lista in dizionario
Lascia un commento