Python ZIP-fil med Eksempel
Python lar deg raskt lage zip/tar-arkiver.
Fรธlgende kommando vil zippe hele katalogen
shutil.make_archive(output_filename, 'zip', dir_name)
Fรธlgende kommando gir deg kontroll over filene du vil arkivere
ZipFile.write(filename)
Her er trinnene for รฅ lage zip-fil i Python
Trinn 1) For รฅ lage en arkivfil fra Python, sรธrg for at du har importerklรฆringen korrekt og i orden. Her er importerklรฆringen for arkivet from shutil import make_archive
Kode Forklaring
- Importer make_archive-klassen fra modul shutil
- Bruk split-funksjonen til รฅ dele ut katalogen og filnavnet fra banen til plasseringen av tekstfilen (guru99)
- Deretter kaller vi modulen "shutil.make_archive("guru99 archive, "zip", root_dir)" for รฅ lage arkivfil, som vil vรฆre i zip-format
- Deretter gรฅr vi inn i rotkatalogen med ting vi รธnsker รฅ bli zippet opp. Sรฅ alt i katalogen vil bli zippet
- Nรฅr du kjรธrer koden, kan du se at arkivets zip-fil er opprettet pรฅ hรธyre side av panelet.
Trinn 2) Nรฅr arkivfilen din er laget, kan du hรธyreklikke pรฅ filen og velge OS, og den vil vise arkivfilene dine i den som vist nedenfor
Nรฅ vil archive.zip-filen din vises pรฅ operativsystemet ditt (Windows Explorer)
Trinn 3) Nรฅr du dobbeltklikker pรฅ filen, vil du se listen over alle filene der.
Trinn 4) In Python vi kan ha mer kontroll over arkivet siden vi kan definere hvilken spesifikk fil som skal inkluderes under arkivet. I vรฅrt tilfelle vil vi inkludere to filer under arkiv ยซguru99.txtยป og "guru99.txt.bak".
Kode Forklaring
- Importer Zipfile-klasse fra zip-fil Python modul. Denne modulen gir full kontroll over รฅ lage zip-filer
- Vi oppretter en ny zipfil med navn ("testguru99.zip, "w")
- Oppretting av en ny Zipfile-klasse krever innlevering av tillatelse fordi det er en fil, sรฅ du mรฅ skrive informasjon inn i filen som newzip
- Vi brukte variabelen "newzip" for รฅ referere til zip-filen vi opprettet
- Ved รฅ bruke skrivefunksjonen pรฅ "newzip"-variabelen legger vi til filene "guru99.txt" og "guru99.txt.bak" til arkivet
Nรฅr du kjรธrer koden kan du se at filen er opprettet pรฅ hรธyre side av panelet med navnet "guru99.zip"
Merknader: Her gir vi ingen kommando for รฅ "lukke" filen som "newzip.close" fordi vi bruker "With" scope lock, sรฅ nรฅr programmet faller utenfor dette scope vil filen bli ryddet opp og lukkes automatisk.
Trinn 5) Nรฅr du -> hรธyreklikk pรฅ filen (testguru99.zip) og -> velg operativsystemet ditt (Windows Explorer), vil den vise arkivfilene i mappen som vist nedenfor.
Nรฅr du dobbeltklikker pรฅ filen "testguru99.zip", vil den รฅpne et annet vindu, og dette vil vise filene som er inkludert i det.
Her er den komplette koden
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")
Sammendrag
- For รฅ zippe hele katalogen, bruk kommandoen "shutil.make_archive("navn",,"zip", root_dir)
- For รฅ velge filene som skal zippes, bruk kommandoen "ZipFile.write(filename)"







