Python ZIP fájl példával

⚡ Okos összefoglaló

Python ZIP archívumokat hoz létre a beépített shutil és zipfile modulokkal. Itt megtanulhatod, hogyan tömöríthetsz be egy teljes könyvtárat a make_archive() segítségével, hogyan tömöríthetsz be bizonyos fájlokat a ZipFile segítségével, és pl.tract, listázza és olvassa az archívum tartalmát.

  • 🗜️ archívum készítése(): A shutil.make_archive() függvény egy teljes könyvtárat .zip fájlba tömörít.
  • 📄 ZipFile.write(): A ZipFile.write() függvény egyesével adja hozzá az archívumhoz a kívánt fájlokat.
  • 📂 extracmagas(): ZipFile.extracA tall() függvény minden fájlt kicsomagol az archívumból egy mappába.
  • 📋 névlista(): A ZipFile.namelist() függvény listázza a ZIP archívumon belüli fájlneveket.
  • 🤖 MI segítség: Az olyan mesterséges intelligencia által fejlesztett eszközök, mint a Copilot, azonnal generálják az irányítószámot és kicsomagolják azt.

Python ZIP fájl

Python lehetővé teszi a zip/tar archívumok gyors létrehozását.

A következő parancs a teljes könyvtárat tömöríti

shutil.make_archive(output_filename, 'zip', dir_name)

A következő parancs segítségével szabályozhatja az archiválni kívánt fájlokat

ZipFile.write(filename)

Hogyan lehet egy teljes könyvtárat zip formátumban becsomagolni? Python

Íme a ZIP-fájl létrehozásának lépései Python

Step 1) Archív fájl létrehozásához Python, győződjön meg arról, hogy az importálási nyilatkozat helyes és rendben van. Itt található az archívum importálási nyilatkozata from shutil import make_archive

Python ZIP fájl

Code Magyarázat

  • Importálja a make_archive osztályt a shutil modulból
  • Használja a split funkciót a könyvtár és a fájlnév felosztására a szövegfájl helyének elérési útjától (guru99)
  • Ezután meghívjuk a modult "shutil.make_archive("guru99 archívum, "zip", root_dir)" archív fájl létrehozásához, amely zip formátumban lesz
  • Ezután átadjuk a gyökérkönyvtárba azokat a dolgokat, amelyeket tömöríteni szeretnénk. Így a könyvtárban minden zip-be kerül
  • A kód futtatásakor a panel jobb oldalán láthatja, hogy az archív zip-fájl létrejött.

Step 2) Az archív fájl elkészítése után kattintson a jobb gombbal a fájlra, és válassza ki az operációs rendszert, és az alább látható módon megjeleníti benne az archív fájlokat.

Python ZIP fájl

Mostantól az archive.zip fájl megjelenik az operációs rendszerén (Windows Explorer)

Python ZIP fájl

Step 3) Ha duplán kattint a fájlra, látni fogja a benne lévő összes fájl listáját.

Python ZIP fájl

Hogyan tömörítsünk bizonyos fájlokat ZipFile használatával

Step 4) In Python jobban szabályozhatjuk az archívumot, mivel meg tudjuk határozni, hogy melyik fájl kerüljön az archívumba. Esetünkben két fájlt fogunk az archívum alá helyezni "guru99.txt" és a „guru99.txt.bak”.

Python ZIP fájl

Code Magyarázat

  • Zipfile osztály importálása zip fájlból Python modul. Ez a modul teljes ellenőrzést biztosít a zip fájlok létrehozása felett
  • Létrehozunk egy új Zip-fájlt névvel ("testguru99.zip, "w)
  • Új Zipfile osztály létrehozásához engedély átadása szükséges, mivel ez egy fájl, ezért az információkat newzip-ként kell beírnia a fájlba
  • A „newzip” változót használtuk az általunk létrehozott zip fájlra
  • A „newzip” változó írási funkciójával hozzáadjuk a „guru99.txt” és „guru99.txt.bak” fájlokat az archívumhoz.

Amikor végrehajtja a kódot, láthatja, hogy a panel jobb oldalán létrejön a fájl „guru99.zip” néven.

Megjegyzések: Itt nem adunk parancsot a fájl „bezárására”, mint például a „newzip.close”, mert „With” hatókör zárolást használunk, így ha a program ezen a hatókörön kívül esik, a fájl megtisztul és automatikusan bezárul.

Step 5) Amikor -> kattintson jobb gombbal a fájlra (testguru99.zip), és -> válassza ki az operációs rendszert (Windows Explorer), akkor az alább látható módon megjeleníti a mappában lévő archív fájlokat.

Python ZIP fájl

Ha duplán kattint a „testguru99.zip” fájlra, megnyílik egy másik ablak, és ez mutatja a benne található fájlokat.

Python ZIP fájl

teljes Python Code ZIP fájl létrehozása

Itt a teljes kód

Python 2 Példa

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

def main():
# Check if file exists
	if path.exists("guru99.txt"):
# get the path to the file in the current directory
	src = path.realpath("guru99.txt");
# rename the original file
	os.rename("career.guru99.txt","guru99.txt")
# now put things into a ZIP archive
	root_dir,tail = path.split(src)
    shutil.make_archive("guru99 archive", "zip", root_dir)
# more fine-grained control over ZIP files
	with ZipFile("testguru99.zip","w") as newzip:
	newzip.write("guru99.txt")
	    newzip.write("guru99.txt.bak")
if __name__== "__main__":
	  main()

Python 3 Példa

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

    # Check if file exists
       if path.exists("guru99.txt"):
    # get the path to the file in the current directory
        src = path.realpath("guru99.txt");
    # rename the original file
        os.rename("career.guru99.txt","guru99.txt")
    # now put things into a ZIP archive
        root_dir,tail = path.split(src)
        shutil.make_archive("guru99 archive","zip",root_dir)
    # more fine-grained control over ZIP files
        with ZipFile("testguru99.zip", "w") as newzip:
            newzip.write("guru99.txt")
            newzip.write("guru99.txt.bak")

Hogyan lehetek extracZIP fájl kicsomagolása Python

Egy archívum kicsomagolásához nyisd meg olvasási módban a ZipFile paranccsal, és hívd meg az ex parancsot.tractall()-ból ex-betracminden fájl, vagy pl.tract() egyetlen tag kiemeléséhez.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    myzip.extractall("extracted_files")

Az extracA tall() metódus az összes archivált fájlt az argumentumként átadott mappába írja.

Fájlok listázása ZIP-fájlban Archive

Archívumot megtekinthet ex nélkültracA namelist() metódus visszaadja a ZIP-ben tárolt összes fájl nevét.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    print(myzip.namelist())

Ez kinyomtatja az archívumban található fájlnevek listáját.

Hogyan olvassunk be egy fájlt egy ZIP-fájlból Archive

Egy tagfájlt közvetlenül az archívumból olvashatsz kicsomagolás nélkül.ping lemezre a ZipFile open() metódusával.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    with myzip.open("guru99.txt") as f:
        print(f.read())

Ez akkor hasznos, ha egy nagy archívumból csak egyetlen fájl tartalmára van szüksége.

GYIK

Használd a shutil.make_archive(name, 'zip', root_dir) függvényt egy könyvtár zip-eléséhez, vagy nyisson meg egy ZipFile-t írási módban, és hívja meg a write() függvényt, hogy adott fájlokat adjon az archívumhoz.

A shutil.make_archive() egyetlen hívásban zip-el egy egész könyvtárat, míg a zipfile.ZipFile finomabb vezérlést biztosít, lehetővé téve a könyvtárak hozzáadását, olvasását vagy törlését.tracaz archívumon belüli egyes fájlok.

Nyisd meg az archívumot a ZipFile('file.zip', 'r') paranccsal, és hívd meg az ex függvényt.tractall('mappa') ex-betracmindent, vagy pl.tract('name') egyetlen fájl kinyerése az archívumból.

Nyisd meg a ZipFile-t olvasási módban, és hívd meg a namelist() függvényt, amely visszaadja az archívumban tárolt összes fájlnév listáját ex nélkül.tracbármelyiküket.

A with utasítás automatikusan bezárja az archívumot a blokk végén, még hiba esetén is, így nem kell manuálisan meghívni a close() függvényt.

Az olyan mesterséges intelligencia asszisztensek, mint a GitHub Copilot, automatikusan kiegészítik a ZipFile és a make_archive() hívásokat, és ciklusokat generálnak, amelyek számos fájlt tömörítenek vagy kicsomagolnak egy egyszerű nyelvű leírásból.

Igen. A mesterséges intelligencia által vezérelt eszközök automatizálhatják a biztonsági mentési és archiválási szkriptek írását, választhatnak a shutil és a zipfile között, és hibakezelést adhatnak hozzá a hiányzó fájlok vagy sérült archívumok esetén.

Igen. Nyisd meg a ZipFile-t, majd használd az open() metódusát egy tagfájlon a tartalmának közvetlen, ex nélkül történő beolvasásához.tracaz egész archívum lemezre mentése.

Foglald össze ezt a bejegyzést a következőképpen: