Python ZIP-fil med Exempel
Python lรฅter dig snabbt skapa zip/tar-arkiv.
Fรถljande kommando kommer att zippa 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 din importsats 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 modul shutil
- Anvรคnd splitfunktionen fรถr att dela upp katalogen och filnamnet frรฅn sรถkvรคgen till textfilens plats (guru99)
- Sedan anropar vi modulen "shutil.make_archive("guru99 archive, "zip", root_dir)" fรถr att skapa arkivfil, som kommer att vara i zip-format
- Efter det skickar vi in โโrotkatalogen med saker vi vill ska bli zippade. Sรฅ allt i katalogen kommer att zippas
- Nรคr du kรถr koden kan du se att arkivets zip-fil skapas pรฅ hรถger sida av panelen.
Steg 2) Nรคr din arkivfil รคr skapad kan du hรถgerklicka pรฅ filen och vรคlja operativsystemet, sรฅ kommer det att visa dina arkivfiler i den som visas nedan
Nu kommer din archive.zip-fil att visas pรฅ ditt operativsystem (Windows explorer)
Steg 3) Nรคr du dubbelklickar pรฅ filen kommer du att se listan med alla filer dรคr.
Steg 4) In Python vi kan 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 arkiv "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")
- Att 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 referera till zip-filen vi skapade
- Med hjรคlp av skrivfunktionen pรฅ variabeln "newzip" lรคgger vi till filerna "guru99.txt" och "guru99.txt.bak" till arkivet
Nรคr du kรถr koden kan du se att filen skapas pรฅ hรถger sida av panelen med namnet "guru99.zip"
Anmรคrkningar: 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 upp och stรคngs automatiskt.
Steg 5) Nรคr du -> hรถgerklicka pรฅ filen (testguru99.zip) och -> vรคlj ditt operativsystem (Windows explorer), kommer den att visa arkivfilerna i mappen som visas nedan.
Nรคr du dubbelklickar pรฅ filen "testguru99.zip", รถppnas ett annat fรถnster, och detta kommer att visa filerna som ingรฅr i den.
Hรคr รคr den fullstรคndiga koden
Python 2 Exempel
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 Exempel
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")
Sammanfattning
- Fรถr att zippa hela katalogen anvรคnd kommandot "shutil.make_archive("namn",,"zip", root_dir)
- Fรถr att vรคlja filerna att zippa anvรคnd kommandot "ZipFile.write(filename)"







