Python Unzip File: Sådan udpakkes enkelte eller flere filer
On september 24, 2021 by adminPython ZipFile er en klasse af zipfile-modul til at læse og skrive zip-filer. ZIP er arkivfilformatet, der understøtter tabsfri datakomprimering.
Med tabsfri komprimering menes der, at komprimeringsalgoritmen gør det muligt at rekonstruere de oprindelige data fuldstændigt ud fra de komprimerede data.
En ZIP-fil er en enkelt fil, der indeholder en eller flere komprimerede filer, og som tilbyder en nem måde at gøre store filer mindre og holde relaterede filer sammen.
Python unzip-fil
For at arbejde med zip-filer ved hjælp af Python vil vi bruge et indbygget python-modul kaldet zipfile. I Pythons zipfile-modul indeholder ZipFile-klassen en medlemsfunktion til at udtrække alt ZIP-arkivets indhold.
For at udpakke en fil i Python skal du bruge metoden ZipFile.extractall(). Metoden extractall() tager en sti, members, pwd som argument og udpakker alt indholdet.
Syntaks
ZipFile.extractall(path=None, members=None, pwd=None)
Den accepterer følgende parametre :
- sti: placering, hvor zip-filen skal udpakkes; hvis den ikke er angivet, udpakker den indholdet i den aktuelle mappe.
- members: liste over filer, der skal udpakkes. Den udpakker alle filer i zip-filen, hvis dette argument ikke er angivet.
- pwd: Hvis zip-filen er krypteret, skal du angive adgangskoden i dette argument, standard er None.
Eksempel på Python unzip
Lad os sige, at jeg i min aktuelle arbejdsmappe har en zip-fil kaldet Mail3.zip, og jeg vil udpakke den ved hjælp af ZipFile.extractall()-metoden.
Se følgende kode.
# 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
Det vil udpakke filerne i den samme mappe som din programmeringsapp.py-fil.
Det vil udpakke alle filerne i zip-filen i den aktuelle mappe. Hvis der allerede findes filer med samme navn på udtrækningsstedet, vil den overskrive disse filer.
Vi har brugt Python with statement til at åbne filerne. “Python with” sikrer, at åbne fildeskriptorer lukkes automatisk, når programudførelsen forlader konteksten for with-erklæringen.
Udtræk alle filer fra en zip-fil til en anden mappe
Vi kan udtrække alle filer fra zip-filen til en anden mappe, og for at gøre det skal vi videregive destinationsplaceringen som et argument i extractall(). Stien kan være relativ eller absolut.
Se følgende kode.
# 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')
Her laves et ZipFile-objekt ved at kalde en ZipFile-konstruktør, som accepterer zip-filens navn og tilstandsparametre. Vi opretter ZipFile-objektet i READ-tilstand og navngiver det som zipObj.
I output. Hvis temp-mappen ikke er der, oprettes den pågældende mappe i den aktuelle mappe i den aktuelle mappe og udpakker alt indholdet af Mail3.zip-filen.
Output
python3 app.pyFile is unzipped in temp folder
Udtræk filer fra en stor zip-fil baseret på betingelsen
Lad os sige, at vi har en stor zip-fil, og at vi har brug for nogle få filer fra tusindvis af filer i arkivet. Udpakning af alle filer fra en stor zip-fil kan tage minutter. Men hvis du kun er interesseret i nogle få af de arkiverede filer, kan vi i stedet for at udpakke hele filen udpakke også udpakke den enkelte fil fra zip-filen.
Python ZipFile-klassen indeholder en medlemsfunktion til at udpakke en enkelt fra en ZIP-fil.
ZipFile.extract(member, path=None, pwd=None)
Se følgende kode.
# 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')
Hvis filnavnene har .py-udvidelsen, vil den udpakke inde i temp_py-mappen. Ellers vil den ikke udpakke filerne.
Slutning
Det er meget nemt at udpakke filer i Python, fordi Python indeholder zipfile-modulet.
Zipfile-modulet har alle funktioner til udpakning af enkelte eller flere filer baseret på betingelserne.
Endeligt er Python Unzip: Sådan udpakker du enkelte eller flere filer tutorial overstået.
Se også
Python zip()
Python zip liste af lister
Python zip ordbog
Unzip Python tupler
Python liste til dataframe
Python liste til ordbog
Skriv et svar