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
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
Sada će se vaša datoteka archive.zip pojaviti na vašem OS-u (Windows Explorer)
Korak 3) Kada dvaput kliknete na datoteku, vidjet ćete popis svih datoteka koje se tamo nalaze.
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”.
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.
Kada dvaput kliknete na datoteku “testguru99.zip”, otvorit će se drugi prozor, a to će prikazati datoteke koje su u njemu uključene.
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)”