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

Python ZIP-fil

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

Python ZIP-fil

Nå vil archive.zip-filen din vises på operativsystemet ditt (Windows Explorer)

Python ZIP-fil

Trinn 3) Når du dobbeltklikker på filen, vil du se listen over alle filene der.

Python ZIP-fil

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

Python ZIP-fil

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.

Python ZIP-fil

Når du dobbeltklikker på filen "testguru99.zip", vil den åpne et annet vindu, og dette vil vise filene som er inkludert i det.

Python ZIP-fil

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