Primjer-1: Sažimanje jedne datoteke
Stvorite novu datoteku pod nazivom 'poštanski broj1.pi ' i dodajte sljedeći kod. zip datoteka modul se uvozi za komprimiranje datoteke. temp.zip dodjeljuje se kao zip datoteka s načinom pisanja, a zatim, izvorno ime datoteke, temp.txt i tip kompresije dani su kao parametri u metodi pisanja.
import zipfilezip_file = zipfile.ZipFile ('temp.zip ',' w ')
zip_file.write ('temp.txt ', tip_kompresije = zip datoteka.ZIP_DEFLATED)
zip_file.Zatvoriti()
Pokrenite skriptu
$ python3 poštanski broj1.pyVeličina temp.txt je 27 bajtova a nakon kompresije, veličina temp.zip je 2 bajta.
Primjer-2: Sažimanje određenog direktorija
Stvorite novu datoteku pod nazivom 'poštanski broj2.pi ' i dodajte sljedeći kod. Direktorij može sadržavati mnogo datoteka, mapa i podmapa. Da biste pročitali sadržaj imenika, os modul pythona se uvozi sa zip datoteka modul za komprimiranje direktorija. U ovoj skripti, mydir direktorij se koristi za kompresiju.
# uvoz potrebnih modulauvoz os
import zipfile
# Deklarirajte funkciju za vraćanje svih putova datoteke određenog direktorija
def retrieve_file_paths (dirName):
# varijabla putova datoteka za postavljanje
filePaths = []
# Pročitajte sve mape, poddirektorijume i popise datoteka
za root, direktorije, datoteke u os.hodati (dirName):
za naziv datoteke u datotekama:
# Stvorite puni put do datoteke pomoću os modula.
filePath = os.staza.pridruživanje (root, naziv datoteke)
filePaths.dodati (filePath)
# vrati sve staze
vrati filePaths
# Proglasite glavnu funkciju
def glavni ():
# Dodijelite ime direktoriju zip-u
dir_name = 'mydir'
# Pozovite funkciju za dohvaćanje svih datoteka i mapa dodijeljenog direktorija
filePaths = dohvat_datoteka_datoteka (ime_dir)
# ispisuje popis svih datoteka koje se komprimiraju
print ('Sljedeći popis datoteka bit će stisnut u zip datoteku:')
za fileName u filePaths:
ispis (fileName)
# pisanje datoteka u zip datoteku
zip_file = zipfile.ZipFile (ime_dir + '.zip ',' w ')
sa zip_datotekom:
# pisanje svake datoteke jednu po jednu
za datoteku u filePaths:
zip_file.pisanje (datoteka)
ispis (ime_dir + '.zip datoteka je uspješno stvorena!')
# Pozovite glavnu funkciju
ako je __name__ == "__glavno__":
glavni()
Pokrenite skriptu
$ python3 poštanski broj2.pyVeličina mydir je 21 bajt a nakon kompresije, veličina mydir.zip je 2 bajta.
Primjer-3: Sažimanje direktorija datog argumentom naredbenog retka
Stvorite novu datoteku pod nazivom 'poštanski broj3.pi ' i dodajte sljedeći kod. Da biste pročitali vrijednost naredbenog retka, još jedan python modul sys se uvozi sa os i zip datoteka modula.
# uvoz potrebnih modulauvoz os
import sys
import zipfile
# Deklarirajte funkciju za povratak svih staza datoteka određenog direktorija
def retrieve_file_paths (dirName):
# varijabla putova datoteka za postavljanje
filePaths = []
# Pročitajte sve mape, poddirektorijume i popise datoteka
za root, direktorije, datoteke u os.hodati (dirName):
za naziv datoteke u datotekama:
# Stvorite puni put do datoteke pomoću os modula.
filePath = os.staza.pridruživanje (root, naziv datoteke)
filePaths.dodati (filePath)
# vrati sve staze
vrati filePaths
# Proglasite glavnu funkciju
def glavni ():
# Provjerite daju li se dva argumenta u vrijeme izvođenja skripte
ako je len (sys.argv) != 2:
print ("Upisali ste naziv direktorija za zip")
sys.izlaz (1)
# Postavite ime direktorija iz naredbenog argumenta
ime_dirka = sys.argv [1]
# Postavite naziv zip datoteke
zipFileName = dir_name + ".zip "
# Pozovite funkciju za dohvaćanje svih datoteka i mapa dodijeljenog direktorija
filePaths = retrieve_file_paths (ime_dir)
# ispisati popis datoteka koje se komprimiraju
ispis ('Sljedeći popis datoteka bit će komprimiran:')
za fileName u filePaths:
ispis (fileName)
# zapisujte datoteke i mape u zip datoteku
zip_file = zipfile.ZipFile (zipFileName, 'w')
sa zip_datotekom:
# svaku datoteku napišite zasebno
za datoteku u filePaths:
zip_file.pisanje (datoteka)
ispis (datoteka zipFileName + 'uspješno je stvorena!')
# Pozovite glavnu funkciju
ako je __name__ == "__glavno__":
glavni()
Pokrenite skriptu
$ python3 poštanski broj3.pytest daje se kao ime direktorija u argumentu naredbenog retka. Veličina test je 21 bajt a nakon kompresije, veličina test.zip je 2 bajta.
Nadam se da će vam ovaj vodič pomoći da koristite python za komprimiranje bilo koje datoteke ili direktorija.