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