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