A tömörítés egy elegáns módszer több fájl tömörítésére és egyetlen fájlba való egyesítésére. Ezzel nem csak tárhelyet takaríthatunk meg, hanem sávszélességet is, amikor fájlokat viszünk át hálózaton. A zip egyik legjobb tulajdonsága, hogy minden nagyobb platformon működik: Windows, Linux és Mac.
A Zip veszteségmentes tömörítést használ, így minden adatot megtart a tömörítéskor és a kicsomagoláskor. Titkosíthatja és visszafejtheti a zip fájlokat is.
A rengeteg felfedezésre váró funkció segítségével fedezze fel, hogyan olvashat, tömöríthet és csomagolhat ki fájlokat a Python zipfile moduljával.
Mi az a zipfile modul?
Használhatja a szabványos zipfile modult a zip fájlok Python használatával történő manipulálásához. Ezzel a modullal zip fájlokat nyithat meg és olvashat, metaadatait olvashatja, zip fájlt hozhat létre, tömörítheti és kibonthatja a fájlokat. Háromféle tömörítési mód áll rendelkezésre: Deflate, Bzip2 és LZMA.
Az egyik dolog, ami hiányzik a modulból, az a többlemezes fájlok kezelésének képessége, de a ZIP64 kiterjesztést igen. A zip-archívumok visszafejtésére is képes, de nem titkosítja azokat. A zipfile modul segítségével megkaphatja a zip fájl metaadatait, például a módosítás dátumát és időpontját. Lekérheti a részleteket is, például a fájl létrehozásához használt operációs rendszert, a zip verziót és a fájlméretet tömörített és tömörítetlen formátumban is.
Fájlok tömörítése Python használatával
A Python zipfile moduljával több fájlt is tömöríthet egyetlen archívumba. Importálja a ZIP fájl modul a ZIP fájl csomagot a szükséges zip-műveletek elvégzéséhez. Import is a os modul a fájlok kiválasztásához és mentéséhez.
Határozzon meg egy függvényt get_all_file_paths(). El kell fogadnia egy olyan könyvtárparamétert, amely tartalmazza a tömörítendő fájlokat tartalmazó mappa elérési útját.
Inicializáljon egy üres listát, amely tárolja a fájl útvonalak listáját. Használjon egy for ciklust a célkönyvtár teljes tartalmának lekéréséhez a os.walk() funkció. Ez a funkció felülről lefelé vagy alulról felfelé haladva lekéri a fájlneveket egy könyvtárfában. A függvény minden könyvtárhoz egy három sorból ad vissza, amely tartalmazza a root, a dirs és a fájlokat.
A gyökér egy karakterlánc, amely tartalmazza a könyvtár teljes elérési útját. A dirs lista tartalmazza a könyvtárban található összes alkönyvtárat. A fájllista a könyvtárban található összes fájlt tartalmazza.
A hurkon belül deklaráljon egy másikat ciklust a fájllista ismétléséhez. Használja a os.path.join() függvény a könyvtár nevének egyesítése az egyes fájlnevekkel egy teljes elérési út létrehozásához. Ezután fűzze hozzá ezt a teljes fájlnevet a korábban létrehozott listához. A művelet befejezése után adja vissza a fájl elérési útjainak listáját.
# importálja a szükséges modulokat
tól től ZIP fájl import ZIP fájl
import os# hozzon létre egy függvényt az összes fájl elérési út lekéréséhez
defget_all_file_paths(Könyvtár):
# üres lista inicializálása a fájl elérési útjainak tárolására
file_paths = []# navigáljon a fájlok között
számáragyökér, könyvtárakat, fájlokatban benos.séta(Könyvtár):
a fájlnévhez a fájlokban:
# csatlakozzon a gyökérhez és a fájlnévhez a teljes fájl elérési út létrehozásához
filepath = os.path.join (root, fájlnév)
file_paths.mellékel(fájl elérési út)
# visszaadja az összes fájl elérési utat
Visszatérés file_paths
Tárolja a tömöríteni kívánt fájlokat tartalmazó mappa elérési útját egy könyvtár nevű változóban. Hívja a funkciót, get_all_file_paths() amelyet korábban hozott létre, és tárolja a visszaadott értéket file_paths.
Jelenítsen meg egy üzenetet a felhasználónak, hogy tudja, hogy a program ezeket a fájlokat tömöríti. Iteráljon a fájlok között, és jelenítse meg a nevüket.
Adja meg azt a nevet, amelyet a zip-fájlnak szeretne adni, valamint azt a specifikációt, amely szerint a program írható fájlt ad vissza a with utasítással a kivételek kezelésére. Ismételje meg az egyes fájlokat, és használja a write() függvényt az írható fájl felett zip fájlba.
Amikor a művelet befejeződött, adjon ki egy üzenetet, amely elmagyarázza, hogy a program sikeresen tömörítette az összes fájlt.
# a tömöríteni kívánt mappa elérési útja
könyvtár = './pythonzip'# függvény meghívása a könyvtárban lévő összes fájl elérési út lekéréséhez
file_paths = get_all_file_paths (könyvtár)# kinyomtatja az összes tömöríteni kívánt fájl listáját
nyomtatás("A tömörítendő fájlok listája:")a file_name esetén a file_paths-ban:
nyomtatás(fájl név)# fájlok írása zip-fájlba
val vel ZIP fájl("my_file.zip", "w") mint postai irányítószám:
# írjon minden fájlt egyenként
a file_paths fájlhoz:
postai irányítószám.ír(fájlt)
nyomtatás('Minden fájl tömörítve van!')
Fájlok kicsomagolása Python használatával
A fájlok kicsomagolása a zipfile modul használatával sokkal egyszerűbb. Importálja a ZIP fájl csomag a ZIP fájl modult, és tárolja a kicsomagolni kívánt zip fájl nevét egy változóban. Használja a with utasítást a kivételek kezelésére, és nyissa meg a kicsomagolni kívánt fájlt olvasási módban. Használja a printdir() funkció a zip-ben található fájlok tartalomjegyzékének megjelenítéséhez.
Jelenítsen meg egy folyamatüzenetet arról, hogy kicsomagolja a fájlokat, és használja a kivonat() függvény a zip fájl tartalmának kibontásához az aktuális munkakönyvtárba. Alternatív megoldásként megadhat egy elérési út paramétert, amellyel megváltoztathatja azt az elérési utat, ahová a program kibontja a fájlokat.
Jelenítsen meg egy üzenetet a gombbal nyomtatás nyilatkozat a művelet befejezéséről.
# a szükséges modulok importálása
tól től ZIP fájl import ZIP fájl# adja át a kicsomagolni kívánt zip fájl nevét
fájl_név = "extract.zip"# a zip fájl megnyitása olvasási módban
val vel ZipFile (fájlnév, "r") mint postai irányítószám:
# megjeleníti a zip fájl tartalmát
postai irányítószám.printdir()
# az összes fájl kibontása
nyomtatás("Kivonat folyamatban...")
postai irányítószám.extractall()
nyomtatás('Minden fájl kicsomagolva!')
További információ a ZIP-fájlokról
A zip fájlok nagy népszerűségre tettek szert, és már évtizedek óta használatban vannak. Az olyan népszerű webhelyek, mint a GitHub és a Google Drive, lehetővé teszik a fájlok gyűjteményének letöltését ZIP-archívumként. A zip program a fájlokat egyetlen csomagba tömöríti. Ez ellentétben áll egy olyan eszközzel, mint a tar, amely összecsomagolja a fájlokat, de nem tömöríti őket.
Ha hatékonyabb algoritmussal szeretné titkosítani fájljait, a RAR-fájlok a megfelelő megoldás. A RAR az AES-128 algoritmust használja, amely jobb, mint a zip-fájlok által használt deflációs algoritmus. Végül válassza ki azt, amelyik a legjobban megfelel az Ön igényeinek.