Python Unzip File: Kuinka purkaa yksittäisiä tai useita tiedostoja
On 24 syyskuun, 2021 by adminPython ZipFile on zipfile-moduulin luokka zip-tiedostojen lukemiseen ja kirjoittamiseen. ZIP on arkistotiedostomuoto, joka tukee häviötöntä tiedonpakkausta.
Häviöttömällä pakkauksella tarkoitetaan sitä, että pakkausalgoritmi mahdollistaa alkuperäisen datan täydellisen rekonstruoinnin pakatusta datasta.
ZIP-tiedosto on yksittäinen tiedosto, joka sisältää yhden tai useamman pakatun tiedoston, ja se tarjoaa helpon tavan pienentää suuria tiedostoja ja pitää toisiinsa liittyvät tiedostot yhdessä.
Python purkaa zip-tiedosto
Työskennellessämme zip-tiedostojen parissa Pythonilla käytämme sisäänrakennettua python-moduulia nimeltä zipfile. Pythonin zipfile-moduulissa ZipFile-luokka tarjoaa jäsenfunktion ZIP-arkiston koko sisällön purkamiseen.
Pystyt purkamaan tiedoston Pythonissa käyttämällä ZipFile.extractall()-metodia. Extractall()-metodi ottaa argumenttina polun, members, pwd ja purkaa koko sisällön.
Syntaksi
ZipFile.extractall(path=None, members=None, pwd=None)
Metodi hyväksyy seuraavat parametrit :
- path: sijainti, josta zip-tiedosto pitää purkaa; jos sitä ei anneta, se purkaa sisällön nykyisestä hakemistosta.
- members: luettelo purettavista tiedostoista. Se purkaa kaikki zip-tiedoston tiedostot, jos tätä argumenttia ei anneta.
- pwd: Jos zip-tiedosto on salattu, anna salasana tässä argumentissa oletusarvo on None.
Esimerkki Pythonin unzip-ohjelmasta
Esitettäköön, että nykyisessä työhakemistossani on zip-tiedosto nimeltä Mail3.zip, ja haluan purkaa sen ZipFile-ohjelmalla.extractall()-metodilla.
Katso seuraava koodi.
# 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 purkaa tiedostot samassa hakemistossa kuin ohjelmointisovelluksesi.py-tiedosto.
Se purkaa kaikki zip-tiedoston tiedostot nykyisessä hakemistossa. Jos samannimisiä tiedostoja on jo olemassa poimintapaikassa, se korvaa nämä tiedostot.
Olemme käyttäneet Python with -lauseketta tiedostojen avaamiseen. ”Python with” varmistaa, että avoimet tiedostokuvaajat suljetaan automaattisesti sen jälkeen, kun ohjelman suoritus poistuu with-lauseen kontekstista.
Pura kaikki tiedostot zip-tiedostosta eri hakemistoon
Voimme purkaa kaikki tiedostot zip-tiedostosta eri hakemistoon, ja sitä varten meidän on annettava kohdepaikka argumenttina funktiolle extractall(). Polku voi olla suhteellinen tai absoluuttinen.
Katso seuraava koodi.
# 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')
Tässä ZipFile-olio luodaan kutsumalla ZipFile-konstruktoria, joka hyväksyy zip-tiedoston nimen ja mode-parametrit. Luomme ZipFile-olion READ-tilassa ja nimeämme sen nimellä zipObj.
Tulosteessa. Jos temp-kansiota ei ole, se luo kyseisen kansion nykyiseen Directoryyn ja purkaa koko Mail3.zip-tiedoston sisällön.
Output
python3 app.pyFile is unzipped in temp folder
Extract files from a large zip file based on the condition
Esitettäköön, että meillä on valtavan suuri zip-tiedosto ja tarvitsemme muutaman tiedoston tuhansista arkistossa olevista tiedostoista. Kaikkien tiedostojen purkaminen suuresta zip-arkistosta voi kestää minuutteja. Mutta jos olemme kiinnostuneita vain muutamasta arkistoidusta tiedostosta, niin koko tiedoston purkamisen sijaan voimme purkaa yksittäisen tiedoston myös zip-tiedostosta.
Pythonin ZipFile-luokka tarjoaa jäsenfunktion, jolla voidaan purkaa yksittäinen tiedosto zip-tiedostosta.
ZipFile.extract(member, path=None, pwd=None)
Katsokaa seuraavaa koodia.
# 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')
Jos tiedostojen nimissä on .py-pääte, se purkaa sen temp_py-kansion sisään. Muussa tapauksessa se ei pura tiedostoja.
Johtopäätös
Tiedostojen purkaminen Pythonissa on erittäin helppoa, koska Python tarjoaa zipfile-moduulin.
Zipfile-moduulissa on kaikki toiminnot yksittäisten tai useiden tiedostojen purkamiseen ehtojen perusteella.
Viimein, Python Unzip: Kuinka purkaa yksittäisiä tai useita tiedostoja opetusohjelma on ohi.
Katso myös
Pythonin zip()
Pythonin zip-luettelo listoista
Pythonin zip-sanakirja
Pythonin zip-luettelon purkaminen sanakirjaksi
Pythonin tupleiden purkaminen
Pythonin listan muuttaminen tietoruuduksi
Pythonin listan muuttaminen sanakirjaksi
Vastaa