Python vam omogućuje 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 u Pythonu
Korak 1) Da biste iz Pythona stvorili arhivsku datoteku, provjerite jeste li ispravno ispisali izjavu o uvozu. Ovdje je izjava o uvozu za arhivu
from shutil import make_archive
Objašnjenje koda
- Uvezite klasu make_archive iz modula shutil
- Upotrijebite funkciju razdvajanja da razdvojite direktorij i ime datoteke s puta do mjesta 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 prelazimo u korijenski direktorij stvari za koje želimo da se komprimiraju. Tako će sve u direktoriju biti komprimirano
- Kada pokrenete kôd, možete vidjeti da je arhivirana zip datoteka stvorena na desnoj strani ploče.
Korak 2)
Sada će se vaša datoteka archive.zip pojaviti na vašem OS-u (Windows Explorer)
Korak 3) Kada dvokliknete datoteku, vidjet ćete popis svih datoteka tamo.
Korak 4) U Pythonu možemo imati veću kontrolu nad arhivom jer možemo definirati koju određenu datoteku uključiti u arhivu. U našem ćemo slučaju uključiti dvije datoteke u arhivu "guru99.txt" i "guru99.txt.bak".
Objašnjenje koda
- Uvezite klasu Zipfile iz zip datoteke Python modul. Ovaj modul daje potpunu kontrolu nad stvaranjem zip datoteka
- Izrađujemo novu Zip datoteku s imenom ("testguru99.zip," w ")
- Stvaranje nove klase Zipfile zahtijeva prosljeđivanje dopuštenja jer je riječ o datoteci, pa u datoteku morate zapisati podatke kao newzip
- Koristili smo varijablu "newzip" za upućivanje na zip datoteku koju smo stvorili
- Koristeći funkciju pisanja na varijablu "newzip", u arhivu dodajemo datoteke "guru99.txt" i "guru99.txt.bak"
Kada izvršite kod, možete vidjeti da je datoteka stvorena na desnoj strani ploče s imenom "guru99.zip"
Napomena : Ovdje ne dajemo naredbu za "zatvaranje" datoteke poput "newzip.close", jer koristimo blokadu opsega "With", pa će se program, kada padne izvan tog opsega, očistiti i automatski zatvoriti.
Korak 5) Kada -> desnom tipkom miša kliknete datoteku (testguru99.zip) i -> odaberete svoj OS (Windows Explorer) , prikazat će se arhivske datoteke u mapi kao što je prikazano dolje.
Kada dvaput kliknete na datoteku "testguru99.zip", otvorit će se drugi prozor, a na njoj će se prikazati datoteke uključene u nju.
Evo kompletnog koda
Primjer Pythona 2
uvozni osuvoziti shutiliz zipfile uvoza ZipFileiz os puta uvozaiz shutil uvoza make_archivedef glavni ():# Provjerite postoji li datotekaako path.exists ("guru99.txt"):# dobiti put do datoteke u trenutnom direktorijusrc = path.realpath ("guru99.txt");# preimenuj izvornu datotekuos.rename ("karijera.guru99.txt", "guru99.txt")# sada stavite stvari u ZIP arhivuroot_dir, tail = path.split (src)shutil.make_archive ("guru99 arhiva", "zip", root_dir)# još preciznije kontrole nad ZIP datotekamasa ZipFile ("testguru99.zip", "w") kao newzip:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")ako je __ime __ == "__glavno__":glavni()
Primjer Pythona 3
uvozni osuvoziti shutiliz zipfile uvoza ZipFileiz os puta uvozaiz shutil uvoza make_archive# Provjerite postoji li datotekaako path.exists ("guru99.txt"):# dobiti put do datoteke u trenutnom direktorijusrc = path.realpath ("guru99.txt");# preimenuj izvornu datotekuos.rename ("karijera.guru99.txt", "guru99.txt")# sada stavite stvari u ZIP arhivuroot_dir, tail = path.split (src)shutil.make_archive ("guru99 arhiva", "zip", root_dir)# još preciznije kontrole nad ZIP datotekamasa ZipFile ("testguru99.zip", "w") kao newzip:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")
Sažetak
- Za arhiviranje cijelog direktorija upotrijebite naredbu "shutil.make_archive (" ime "," zip ", root_dir)
- Za odabir datoteka u zip koristite naredbu "ZipFile.write (naziv datoteke)"