Python Unzip File: Hogyan lehet egyetlen vagy több fájlt kibontani
On szeptember 24, 2021 by adminA python ZipFile a zipfile modul egy osztálya a zip fájlok olvasására és írására. A ZIP egy olyan archív fájlformátum, amely támogatja a veszteségmentes adattömörítést.
Veszteségmentes tömörítés alatt azt értjük, hogy a tömörítési algoritmus lehetővé teszi az eredeti adatok teljes rekonstruálását a tömörített adatokból.
A ZIP-fájl egy vagy több tömörített fájlt tartalmazó egyetlen fájl, amely egyszerű módot kínál a nagy fájlok kisebbé tételére és a kapcsolódó fájlok együtt tartására.
Python unzip file
A zip-fájlok Python segítségével történő feldolgozásához egy beépített python modult fogunk használni, amelynek neve zipfile. A Python zipfile moduljában a ZipFile osztály egy tagfüggvényt biztosít a ZIP-archívum teljes tartalmának kicsomagolásához.
A fájl kicsomagolásához Pythonban a ZipFile.extractall() metódust használjuk. Az extractall() metódus argumentumként egy elérési utat, members, pwd-t vesz fel, és az összes tartalmat kicsomagolja.
Szintaktika
ZipFile.extractall(path=None, members=None, pwd=None)
A következő paramétereket fogadja :
- path: az a hely, ahonnan a zip fájlt ki kell csomagolni; ha nincs megadva, akkor az aktuális könyvtárban lévő tartalmat csomagolja ki.
- members: a kicsomagolandó fájlok listája. Ha ez az argumentum nincs megadva, akkor a zip összes fájlját kicsomagolja.
- pwd:
Példa a Python unzipre
Tegyük fel, hogy az aktuális munkakönyvtáramban van egy Mail3.zip nevű zip fájl, amit a ZipFile segítségével akarok kicsomagolni.extractall() módszerrel.
Lássuk a következő kódot.
# app.pyfrom zipfile import ZipFilewith ZipFile('Mail3.zip', 'r') as zipObj: # Extract all the contents of zip file in current directory zipObj.extractall()
Kimenet
python3 app.py
Ez a programozó app.py fájljával megegyező könyvtárban lévő fájlokat fog kibontani.
A zip-ben lévő összes fájlt kibontja az aktuális könyvtárban. Ha azonos nevű fájlok már vannak a kicsomagolás helyén, akkor felülírja azokat a fájlokat.
A fájlok megnyitásához a Python with utasítást használtuk. A “Python with” biztosítja, hogy a nyitott fájlleírók automatikusan bezáródnak, miután a program végrehajtása elhagyja a with utasítás kontextusát.
Extraháljuk az összes fájlt egy zip fájlból egy másik könyvtárba
A zip fájlból az összes fájlt egy másik könyvtárba tudjuk kinyerni, ehhez az extractall() argumentumaként át kell adnunk a célhelyet. Az elérési út lehet relatív vagy abszolút.
Lássuk a következő kódot.
# 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')
Itt egy ZipFile objektumot hozunk létre a ZipFile konstruktor meghívásával, amely elfogadja a zip fájl nevét és a mód paramétereket. A ZipFile objektumot READ módban hozzuk létre, és zipObj-nak nevezzük el.
A kimeneten. Ha a temp mappa nincs meg, akkor létrehozza ezt a mappát az aktuális Directoryban, és kicsomagolja a Mail3.zip fájl teljes tartalmát.
Kimenet
python3 app.pyFile is unzipped in temp folder
Fájlok kivonása egy nagy zip fájlból a feltétel alapján
Tegyük fel, hogy van egy hatalmas zip fájlunk, és szükségünk van néhány fájlra az archívum ezernyi fájljából. Az összes fájl kicsomagolása egy nagy zip fájlból percekig is eltarthat. De ha csak néhány archivált fájlra vagyunk kíváncsiak, akkor ahelyett, hogy az egész fájlt kicsomagolnánk, az egyes fájlokat is kivehetjük a zip fájlból.
A python ZipFile osztály biztosít egy tagfüggvényt, amellyel kivehetünk egy-egy fájlt a zip fájlból.
ZipFile.extract(member, path=None, pwd=None)
Lásd a következő kódot.
# 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')
Ha a fájlnevek .py kiterjesztésűek, akkor a temp_py mappába fog kicsomagolni. Ellenkező esetben nem fogja kicsomagolni a fájlokat.
Következtetés
A fájlok kicsomagolása Pythonban nagyon egyszerű, mert a Python biztosítja a zipfile modult.
A zipfile modul rendelkezik az összes olyan funkcióval, amely a feltételek alapján egy vagy több fájl kicsomagolására szolgál.
Végezetül, a Python Unzip: Hogyan lehet egy vagy több fájlt kicsomagolni bemutatónak vége.
See Also
Python zip()
Python zip lista listákból
Python zip szótár
Python zip szótár
Python tuple-ek kibontása
Python lista adatkeretbe
Python lista szótárba
Vélemény, hozzászólás?