Python Unzip File: Cum să extrageți fișiere simple sau multiple
On septembrie 24, 2021 by adminPython ZipFile este o clasă de module zipfile pentru citirea și scrierea fișierelor zip. ZIP este formatul de fișier de arhivă care suportă compresia datelor fără pierderi.
Prin compresie fără pierderi, ne referim la faptul că algoritmul de compresie permite ca datele originale să fie reconstruite în întregime din datele comprimate.
Un fișier ZIP este un singur fișier care conține unul sau mai multe fișiere comprimate, oferind o modalitate ușoară de a face mai mici fișierele mari și de a păstra împreună fișierele conexe.
Python unzip file
Pentru a lucra cu fișiere zip folosind Python, vom folosi un modul python încorporat numit zipfile. În modulul zipfile din Python, clasa ZipFile oferă o funcție membră pentru a extrage tot conținutul arhivei ZIP.
Pentru a descompune un fișier în Python, utilizați metoda ZipFile.extractall(). Metoda extractall() ia ca argument o cale, members, pwd și extrage tot conținutul.
Sintaxa
ZipFile.extractall(path=None, members=None, pwd=None)
Aceptă următorii parametri :
- cale: locația în care trebuie extras fișierul zip; dacă nu este furnizată, va extrage conținutul din directorul curent.
- members: lista de fișiere care trebuie extrase. Se vor extrage toate fișierele din zip dacă acest argument nu este furnizat.
- pwd: Dacă fișierul zip este criptat, atunci treceți parola în acest argument valoarea implicită este None.
Exemplu de dezarhivare Python
Să spunem că, în directorul meu de lucru curent, am un fișier zip numit Mail3.zip și vreau să-l dezarhivez folosind ZipFile.extractall().
Vezi următorul cod.
# 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
Se vor extrage fișierele din același director ca și fișierul dvs. de programare app.py.
Se vor extrage toate fișierele din zip din directorul curent. Dacă fișiere cu același nume sunt deja prezente la locația de extracție, va suprascrie acele fișiere.
Am folosit Python with statement pentru a deschide fișierele. „Python with” se asigură că descriptorii de fișiere deschise sunt închise automat după ce execuția programului părăsește contextul instrucțiunii with.
Extrageți toate fișierele dintr-un fișier zip în alt director
Potem extrage toate fișierele din fișierul zip într-un alt director, iar pentru a face acest lucru, trebuie să transmitem locația de destinație ca argument în extractall(). Calea poate fi relativă sau absolută.
Vezi următorul cod.
# 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')
Aici, un obiect ZipFile este creat prin apelarea unui constructor ZipFile, care acceptă numele fișierului zip și parametrii mode. Creăm obiectul ZipFile în modul READ și îl numim zipObj.
În ieșire. Dacă folderul temporar nu există, se va crea acel folder în directorul curent și se va descompune tot conținutul fișierului Mail3.zip.
Salire
python3 app.pyFile is unzipped in temp folder
Extrage fișiere dintr-un fișier zip mare pe baza condiției
Să spunem că avem un fișier zip imens și avem nevoie de câteva fișiere din miile de fișiere din arhivă. Descompunerea tuturor fișierelor dintr-un zip mare poate dura câteva minute. Dar dacă suntem interesați doar de câteva dintre fișierele arhivate, atunci în loc să descompactăm întregul fișier, putem extrage și un singur fișier din fișierul zip.
Clasa Python ZipFile oferă o funcție membră pentru a extrage un singur fișier dintr-un fișier ZIP.
ZipFile.extract(member, path=None, pwd=None)
Vezi următorul cod.
# 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')
Dacă numele fișierelor au extensia .py, atunci se va extrage în interiorul folderului temp_py. În caz contrar, nu va extrage fișierele.
Concluzie
Dezarhivarea fișierelor în Python este foarte ușoară deoarece Python oferă modulul zipfile.
Modulul zipfile are toate funcțiile de dezarhivare a fișierelor unice sau multiple în funcție de condiții.
În cele din urmă, tutorialul Python Unzip: Cum să extrageți fișiere unice sau multiple s-a încheiat.
Vezi și
Python zip()
Python zip listă de liste
Python zip dicționar
Dezarhivare Python tuples
Python list to dataframe
Python list to dictionary
.
Lasă un răspuns