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)
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)"