Python Unzip File: How To Extract Single or Multiple Files
On september 24, 2021 by adminPython ZipFile is een klasse zipfile-module voor het lezen en schrijven van zip-bestanden. ZIP is het bestandsformaat voor archieven dat verliesvrije gegevenscompressie ondersteunt.
Met verliesloze compressie bedoelen we dat het compressie-algoritme het mogelijk maakt om de oorspronkelijke gegevens volledig te reconstrueren uit de gecomprimeerde gegevens.
Een ZIP-bestand is een enkel bestand dat een of meer gecomprimeerde bestanden bevat, en biedt een gemakkelijke manier om grote bestanden kleiner te maken en gerelateerde bestanden bij elkaar te houden.
Python unzip-bestand
Om met Python aan zip-bestanden te werken, zullen we een ingebouwde python-module gebruiken, genaamd zipfile. In de zipfile-module van Python biedt de klasse ZipFile een functie om de volledige inhoud van het ZIP-archief uit te pakken.
Om een bestand in Python uit te pakken, gebruikt u de methode ZipFile.extractall(). De extractall() methode neemt een path, members, pwd als argument, en pakt de hele inhoud uit.
Syntax
ZipFile.extractall(path=None, members=None, pwd=None)
Het accepteert de volgende parameters :
- path: locatie waar het zip-bestand moet worden uitgepakt; indien niet opgegeven, zal het de inhoud in de huidige directory uitpakken.
- members: lijst van bestanden die moeten worden uitgepakt. Alle bestanden in de zip worden uitgepakt als dit argument niet wordt gegeven.
- pwd: Als het zip-bestand gecodeerd is, geef dan het wachtwoord door in dit argument standaard is None.
Exemplaar van Python unzip
Let’s say, in mijn huidige werkdirectory, heb ik een zip-bestand genaamd Mail3.zip, en ik wil het uitpakken met behulp van ZipFile.extractall() methode.
Zie de volgende code.
# 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
Het zal de bestanden uitpakken in dezelfde directory als uw programmeer app.py bestand.
Het zal alle bestanden in de zip in de huidige directory uitpakken. Als er al bestanden met dezelfde naam aanwezig zijn op de uitpaklocatie, worden deze overschreven.
We hebben Python with gebruikt om de bestanden te openen. “Python with” zorgt ervoor dat open file descriptors automatisch worden gesloten nadat de programma-uitvoering de context van het with statement verlaat.
Alle bestanden uit een zip-bestand uitpakken naar een andere directory
We kunnen alle bestanden uit het zip-bestand uitpakken naar een andere directory, en om dat te doen, moeten we de bestemmingslocatie als argument doorgeven in extractall(). Het pad kan relatief of absoluut zijn.
Zie de volgende code.
# 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')
Hier wordt een ZipFile object gemaakt door een ZipFile constructor aan te roepen, die de zip bestandsnaam en mode parameters accepteert. We maken het ZipFile object in READ mode en noemen het als zipObj.
In de uitvoer. Als de tijdelijke map er niet is, wordt die map gemaakt in de huidige directory en wordt de gehele inhoud van het Mail3.zip bestand uitgepakt.
Uitvoer
python3 app.pyFile is unzipped in temp folder
Uitpakken van bestanden uit een groot zip bestand op basis van de voorwaarde
Laten we zeggen dat we een enorm zip bestand hebben, en we hebben een paar bestanden nodig uit duizenden bestanden in het archief. Het uitpakken van alle bestanden uit een grote zip kan minuten duren. Maar als je geïnteresseerd bent in een paar van de gearchiveerde bestanden alleen, dan in plaats van het uitpakken van het hele bestand, kunnen we het enkele bestand ook uitpakken uit de zip file.
Python ZipFile klasse biedt een lid functie om een enkele uit een ZIP File.
ZipFile.extract(member, path=None, pwd=None)
Zie de volgende code.
# 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')
Als de bestandsnamen de .py extensie hebben, dan zal het uitpakken in de temp_py map.
Conclusie
Het uitpakken van bestanden in Python is heel eenvoudig omdat Python de zipfile module biedt.
De zipfile module heeft alle functies voor het uitpakken van enkele of meerdere bestanden op basis van de voorwaarden.
Tot slot, Python Unzip: Hoe enkelvoudige of meervoudige bestanden uitpakken tutorial is voorbij.
Zie ook
Python zip()
Python zip lijst van lijsten
Python zip woordenboek
Unzip Python tupels
Python lijst naar dataframe
Python lijst naar woordenboek
Geef een antwoord