Python ZIP-fil med Eksempel
Python giver dig mulighed for hurtigt at oprette zip/tar-arkiver.
Fรธlgende kommando vil zippe hele mappen
shutil.make_archive(output_filename, 'zip', dir_name)
Fรธlgende kommando giver dig kontrol over de filer, du vil arkivere
ZipFile.write(filename)
Her er trinene til at oprette Zip-fil i Python
Trin 1) For at oprette en arkivfil fra Python, sรธrg for at have din importerklรฆring korrekt og i orden. Her er importerklรฆringen for arkivet from shutil import make_archive
Kode Forklaring
- Importer make_archive klasse fra modul shutil
- Brug splitfunktionen til at opdele mappen og filnavnet fra stien til placeringen af โโtekstfilen (guru99)
- Derefter kalder vi modulet "shutil.make_archive("guru99 archive, "zip", root_dir)" for at oprette arkivfil, som vil vรฆre i zip-format
- Derefter sender vi ind i rodmappen med ting, vi รธnsker at blive zippet op. Sรฅ alt i mappen bliver zippet
- Nรฅr du kรธrer koden, kan du se, at arkivets zip-fil er oprettet i hรธjre side af panelet.
Trin 2) Nรฅr din arkivfil er lavet, kan du hรธjreklikke pรฅ filen og vรฆlge OS, og den vil vise dine arkivfiler i den som vist nedenfor
Nu vises din archive.zip-fil pรฅ dit OS (Windows Explorer)
Trin 3) Nรฅr du dobbeltklikker pรฅ filen, vil du se listen over alle filerne derinde.
Trin 4) In Python vi kan have mere kontrol over arkivet, da vi kan definere, hvilken specifik fil der skal inkluderes under arkivet. I vores tilfรฆlde vil vi inkludere to filer under arkiv "guru99.txt" og "guru99.txt.bak".
Kode Forklaring
- Importer Zipfile-klasse fra zip-fil Python modul. Dette modul giver fuld kontrol over oprettelse af zip-filer
- Vi opretter en ny zipfil med navn ("testguru99.zip, "w")
- Oprettelse af en ny Zipfile-klasse krรฆver tilladelse, fordi det er en fil, sรฅ du skal skrive information ind i filen som newzip
- Vi brugte variabelen "newzip" til at henvise til den zip-fil, vi oprettede
- Ved at bruge skrivefunktionen pรฅ "newzip"-variablen tilfรธjer vi filerne "guru99.txt" og "guru99.txt.bak" til arkivet
Nรฅr du udfรธrer koden, kan du se, at filen er oprettet i hรธjre side af panelet med navnet "guru99.zip"
Bemรฆrk: Her giver vi ingen kommando om at "lukke" filen som "newzip.close", fordi vi bruger "With" scope lock, sรฅ nรฅr programmet falder uden for dette scope vil filen blive ryddet op og lukkes automatisk.
Trin 5) Nรฅr du -> hรธjreklik pรฅ filen (testguru99.zip) og -> vรฆlg dit OS (Windows Explorer), vil den vise arkivfilerne i mappen som vist nedenfor.
Nรฅr du dobbeltklikker pรฅ filen "testguru99.zip", vil den รฅbne et andet vindue, og dette vil vise filerne inkluderet i det.
Her er den komplette kode
Python 2 Eksempel
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 Eksempel
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")
Resumรฉ
- For at zippe hele mappen, brug kommandoen "shutil.make_archive("navn",,"zip", root_dir)
- For at vรฆlge de filer, der skal zippes, skal du bruge kommandoen "ZipFile.write(filename)"







