Python ZIP-fil med exempel

Anonim

Python låter dig snabbt skapa zip / tar-arkiv.

Följande kommando kommer att zip hela katalogen

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

Följande kommando ger dig kontroll över de filer du vill arkivera

ZipFile.write(filename)

Här är stegen för att skapa zip-fil i Python

Steg 1) För att skapa en arkivfil från Python, se till att du har ditt importuttalande korrekt och i ordning. Här är importförklaringen för arkivet

from shutil import make_archive

Kodförklaring

  • Importera make_archive-klass från modulstopp
  • Använd delningsfunktionen för att dela ut katalogen och filnamnet från sökvägen till platsen för textfilen (guru99)
  • Sedan kallar vi modulen "shutil.make_archive (" guru99 archive, "zip", root_dir) "för att skapa arkivfil, som kommer att vara i zip-format
  • Efter det passerar vi i rotkatalogen över saker vi vill bli uppkopplade. Så allt i katalogen kommer att bli zippat
  • När du kör koden kan du se att zip-filen för arkivet skapas till höger om panelen.

Steg 2)

  • När din arkivfil har skapats kan du högerklicka på filen och välja operativsystem, så visas dina arkivfiler i den som visas nedan

    Nu visas din archive.zip-fil i ditt operativsystem (Windows Explorer)

    Steg 3) När du dubbelklickar på filen visas alla filer där.

    Steg 4) I Python kan vi ha mer kontroll över arkivet eftersom vi kan definiera vilken specifik fil som ska inkluderas under arkivet. I vårt fall kommer vi att inkludera två filer under arkivet "guru99.txt" och "guru99.txt.bak".

    Kodförklaring

    • Importera Zipfile-klass från zip-fil Python-modul. Denna modul ger full kontroll över att skapa zip-filer
    • Vi skapar en ny zipfil med namn ("testguru99.zip," w ")
    • Skapa en ny Zipfile-klass kräver att du skickar in behörighet eftersom det är en fil, så du måste skriva information i filen som newzip
    • Vi använde variabeln "newzip" för att hänvisa till zip-filen vi skapade
    • Med hjälp av skrivfunktionen på variabeln "newzip" lägger vi till filerna "guru99.txt" och "guru99.txt.bak" i arkivet

    När du kör koden kan du se att filen skapas till höger om panelen med namnet "guru99.zip"

    Obs : Här ger vi inget kommando för att "stänga" filen som "newzip.close" eftersom vi använder "With" scope lock, så när programmet faller utanför detta scope kommer filen att rensas och stängs automatiskt.

    Steg 5) När du -> högerklickar på filen (testguru99.zip) och -> väljer ditt operativsystem (Windows Explorer) , kommer det att visa arkivfilerna i mappen som visas nedan.

    När du dubbelklickar på filen "testguru99.zip" öppnas ett annat fönster och detta visar de filer som ingår i den.

    Här är den fullständiga koden

    Python 2 Exempel

    importera osimportera shutilfrån zipfile importera ZipFilefrån os importvägfrån shutil import make_archivedef huvud ():# Kontrollera om filen finnsom sökväg finns ("guru99.txt"):# få sökvägen till filen i den aktuella katalogensrc = path.realpath ("guru99.txt");# byt namn på originalfilenos.rename ("career.guru99.txt", "guru99.txt")# lägg nu saker i ett ZIP-arkivroot_dir, tail = path.split (src)shutil.make_archive ("guru99-arkiv", "zip", root_dir)# mer finkornig kontroll över ZIP-filermed ZipFile ("testguru99.zip", "w") som newzip:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")om __namn __ == "__main__":huvud ()

    Python 3 Exempel

    importera osimportera shutilfrån zipfile importera ZipFilefrån os importvägfrån shutil import make_archive# Kontrollera om filen finnsom sökväg finns ("guru99.txt"):# få sökvägen till filen i den aktuella katalogensrc = path.realpath ("guru99.txt");# byt namn på originalfilenos.rename ("career.guru99.txt", "guru99.txt")# lägg nu saker i ett ZIP-arkivroot_dir, tail = path.split (src)shutil.make_archive ("guru99-arkiv", "zip", root_dir)# mer finkornig kontroll över ZIP-filermed ZipFile ("testguru99.zip", "w") som newzip:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")

    Sammanfattning

    • För att zip hela katalogen använd kommandot "shutil.make_archive (" name "," zip ", root_dir)
    • För att välja de filer som ska zipas, använd kommandot "ZipFile.write (filnamn)"