Python ZIP datoteka s primjerom

Python omogućuje vam brzo stvaranje zip/tar arhiva.

Sljedeća naredba će komprimirati cijeli direktorij

shutil.make_archive(output_filename, 'zip', dir_name)

Sljedeća naredba daje vam kontrolu nad datotekama koje želite arhivirati

ZipFile.write(filename)

Evo koraka za stvaranje Zip datoteke Python

Korak 1) Za stvaranje arhivske datoteke iz Python, provjerite je li vaša izjava o uvozu točna i uredna. Ovdje je izjava o uvozu za arhivu from shutil import make_archive

Python ZIP datoteka

Objašnjenje koda

  • Uvoz klase make_archive iz modula shutil
  • Upotrijebite funkciju dijeljenja da odvojite direktorij i naziv datoteke od staze do lokacije tekstualne datoteke (guru99)
  • Zatim pozivamo modul “shutil.make_archive(“guru99 archive, “zip”, root_dir)” za stvaranje arhivske datoteke, koja će biti u zip formatu
  • Nakon toga prosljeđujemo korijenski direktorij stvari koje želimo komprimirati. Tako će sve u imeniku biti komprimirano
  • Kada pokrenete kod, možete vidjeti da se arhivska zip datoteka stvara na desnoj strani ploče.

Korak 2) Nakon što je vaša arhivska datoteka napravljena, možete desnom tipkom miša kliknuti na datoteku i odabrati OS, a on će prikazati vaše arhivske datoteke u njoj kao što je prikazano u nastavku

Python ZIP datoteka

Sada će se vaša datoteka archive.zip pojaviti na vašem OS-u (Windows Explorer)

Python ZIP datoteka

Korak 3) Kada dvaput kliknete na datoteku, vidjet ćete popis svih datoteka koje se tamo nalaze.

Python ZIP datoteka

Korak 4) In Python možemo imati veću kontrolu nad arhivom budući da možemo definirati koju ćemo datoteku uključiti u arhivu. U našem slučaju, u arhivu ćemo uključiti dvije datoteke “guru99.txt” i “guru99.txt.bak”.

Python ZIP datoteka

Objašnjenje koda

  • Uvoz Zipfile klase iz zip datoteke Python modul. Ovaj modul daje potpunu kontrolu nad stvaranjem zip datoteka
  • Stvaramo novu Zip datoteku s imenom ( “testguru99.zip, “w”)
  • Stvaranje nove klase Zipfile zahtijeva prosljeđivanje dopuštenja jer se radi o datoteci, pa trebate upisati informacije u datoteku kao newzip
  • Koristili smo varijablu “newzip” za upućivanje na zip datoteku koju smo stvorili
  • Pomoću funkcije pisanja na varijablu “newzip” dodajemo datoteke “guru99.txt” i “guru99.txt.bak” u arhivu

Kada izvršite kod, možete vidjeti da je datoteka stvorena na desnoj strani ploče s nazivom "guru99.zip"

bilješke: Ovdje ne dajemo nikakvu naredbu za “zatvaranje” datoteke kao što je “newzip.close” jer koristimo zaključavanje opsega “S”, tako da kada program padne izvan ovog opsega, datoteka će se očistiti i automatski zatvoriti.

Korak 5) Kada -> desni klik na datoteku (testguru99.zip) i -> odaberite svoj OS (Windows Explorer), prikazat će arhivske datoteke u mapi kao što je prikazano u nastavku.

Python ZIP datoteka

Kada dvaput kliknete na datoteku “testguru99.zip”, otvorit će se drugi prozor, a to će prikazati datoteke koje su u njemu uključene.

Python ZIP datoteka

Ovdje je kompletan kod

Python 2 Primjer

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 Primjer

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

rezime

  • Za komprimiranje cijelog direktorija koristite naredbu “shutil.make_archive(“name”,”zip”, root_dir)
  • Za odabir datoteka za zip koristite naredbu “ZipFile.write(filename)”