Python ZIP datoteka s primjerom

โšก Pametni saลพetak

Python stvara ZIP arhive s ugraฤ‘enim modulima shutil i zipfile. Ovdje ฤ‡ete nauฤiti kako zipirati cijeli direktorij pomoฤ‡u make_archive(), zipirati specifiฤne datoteke pomoฤ‡u ZipFile i extract, popis i ฤitanje sadrลพaja arhive.

  • ๐Ÿ—œ๏ธ napravi_arhiv(): shutil.make_archive() komprimira cijeli direktorij u .zip datoteku.
  • ๐Ÿ“„ ZipFile.write(): ZipFile.write() dodaje odreฤ‘ene datoteke u arhivu jednu po jednu.
  • ๐Ÿ“‚ extracvisok(): ZipFile.extractall() raspakirava svaku datoteku iz arhive u mapu.
  • ๐Ÿ“‹ popis imena(): ZipFile.namelist() navodi nazive datoteka unutar ZIP arhive.
  • ๐Ÿค– Pomoฤ‡ umjetne inteligencije: Alati umjetne inteligencije poput Copilota trenutno generiraju poลกtanski broj i raspakiraju ga.

Python ZIP datoteka

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)

Kako komprimirati cijeli direktorij u Python

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

Code Objaลกnjenje

  • 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

Kako komprimirati odreฤ‘ene datoteke pomoฤ‡u ZipFilea

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

Code Objaลกnjenje

  • 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

potpun Python Code za izradu ZIP datoteke

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

Kako zavrลกititract (Razpakirajte) ZIP datoteku u Python

Za raspakiranje arhive, otvorite je u naฤinu ฤitanja pomoฤ‡u ZipFile-a i pozovite extracvisok() u npr.tract svaku datoteku ili npr.tract() za izvlaฤenje jednog ฤlana.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    myzip.extractall("extracted_files")

Bivลกi/atracMetoda tall() zapisuje sve arhivirane datoteke u mapu koju prosljeฤ‘ujete kao argument.

Kako popisati datoteke u ZIP datoteci Archive

Moลพete pregledati arhivu bez prethodnogtracto. Metoda namelist() vraฤ‡a imena svake datoteke pohranjene unutar ZIP datoteke.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    print(myzip.namelist())

Ovo ispisuje popis naziva datoteka sadrลพanih u arhivi.

Kako proฤitati datoteku unutar ZIP datoteke Archive

Datoteku ฤlana moลพete proฤitati izravno iz arhive bez raspakiranjaping na disk pomoฤ‡u metode open() klase ZipFile.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    with myzip.open("guru99.txt") as f:
        print(f.read())

Ovo je korisno kada vam je potreban samo sadrลพaj jedne datoteke iz velike arhive.

Pitanja i odgovori

Koristite shutil.make_archive(name, 'zip', root_dir) za komprimiranje direktorija ili otvorite ZipFile u naฤinu pisanja i pozovite write() za dodavanje odreฤ‘enih datoteka u arhivu.

shutil.make_archive() komprimira cijeli direktorij u jednom pozivu, dok zipfile.ZipFile daje precizniju kontrolu, omoguฤ‡ujuฤ‡i vam dodavanje, ฤitanje ili expirytracpojedinaฤne datoteke unutar arhive.

Otvorite arhivu pomoฤ‡u ZipFile('file.zip', 'r') i pozovite extractall('mapa') u extracsve, ili bivลกitract('name') za izvlaฤenje jedne datoteke iz arhive.

Otvorite ZipFile u naฤinu ฤitanja i pozovite namelist(), koja vraฤ‡a popis svih naziva datoteka pohranjenih u arhivi bez extracbilo kojeg od njih.

Naredba with automatski zatvara arhivu kada se blok zavrลกi, ฤak i ako se dogodi greลกka, tako da ne morate ruฤno pozivati โ€‹โ€‹close().

AI asistenti poput GitHub Copilota automatski dovrลกavaju ZipFile i make_archive() pozive te generiraju petlje koje komprimiraju ili raspakiraju mnoge datoteke iz opisa na jednostavnom jeziku.

Da. Alati pokretani umjetnom inteligencijom mogu automatizirati pisanje skripti za sigurnosne kopije i arhiviranje, birati izmeฤ‘u shutila i zipfilea te dodati obradu pogreลกaka za nedostajuฤ‡e datoteke ili oลกteฤ‡ene arhive.

Da. Otvorite ZipFile, a zatim upotrijebite njegovu metodu open() na ฤlanskoj datoteci kako biste izravno proฤitali njezin sadrลพaj, bez navoฤ‘enja izraza.tracprebacivanje cijele arhive na disk.

Saลพmite ovu objavu uz: