Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

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.

instagram viewer

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.