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