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

Oppsummer dette innlegget med: