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

Python ZIP-fil

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

Python ZIP-fil

Nu vises din archive.zip-fil pรฅ dit OS (Windows Explorer)

Python ZIP-fil

Trin 3) Nรฅr du dobbeltklikker pรฅ filen, vil du se listen over alle filerne derinde.

Python ZIP-fil

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

Python ZIP-fil

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.

Python ZIP-fil

Nรฅr du dobbeltklikker pรฅ filen "testguru99.zip", vil den รฅbne et andet vindue, og dette vil vise filerne inkluderet i det.

Python ZIP-fil

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

Opsummer dette indlรฆg med: