Primer-1: Stiskanje ene datoteke
Ustvari novo datoteko z imenom 'poštna številka1.py ' in dodajte naslednjo kodo. zipfile modul se uvozi za stiskanje datoteke. temp.zadrgo je dodeljena kot ime datoteke zip z načinom pisanja in nato izvirno ime datoteke, temp.txt in vrsta stiskanja sta podana kot parametra v metodi pisanja.
uvozi zipfilezip_file = zipfile.ZipFile ('temp.zip ',' w ')
zip_file.write ('temp.txt ', compress_type = zipfile.ZIP_DEFLATED)
zip_file.zapri ()
Zaženite skript
$ python3 poštna številka1.pyVelikost temp.txt je 27 bajtov in po stiskanju velikost temp.zadrgo je 2 bajta.
Primer-2: Stiskanje določenega imenika
Ustvari novo datoteko z imenom 'poštna številka2.py ' in dodajte naslednjo kodo. Imenik lahko vsebuje veliko datotek, map in podmap. Za branje vsebine imenika, os modul pythona se uvozi z zipfile modul za stiskanje imenika. V tem scenariju, mydir imenik se uporablja za stiskanje.
# uvoz zahtevanih modulovuvoz os
uvozi zipfile
# Razglasite funkcijo za vrnitev vseh poti datotek določenega imenika
def retrieve_file_paths (dirName):
# spremenljivka poti poti do datoteke
filePaths = []
# Preberite vse imenike, podimenike in sezname datotek
za root, imenike, datoteke v os.hoja (dirName):
za ime datoteke v datotekah:
# Z os modulom ustvarite celotno pot datoteke.
filePath = os.pot.pridruži se (root, ime datoteke)
filePaths.pripiši (filePath)
# vrne vse poti
vrni filePaths
# Navedite glavno funkcijo
def main ():
# Določite ime imenika v zip
dir_name = 'mydir'
# Pokličite funkcijo za pridobitev vseh datotek in map dodeljenega imenika
filePaths = pridobi_datoteke_datoteke (ime_dir)
# tiskanje seznama vseh datotek, ki jih želite stisniti
print ('Naslednji seznam datotek bo stisnjen:')
za fileName v filePaths:
print (imeDatoteke)
# zapisovanje datotek v zip datoteko
zip_file = zipfile.ZipFile (ime_dirja + '.zip ',' w ')
z zip_file:
# zapisovanje vsake datoteke eno za drugo
za datoteko v filePaths:
zip_file.pisanje (datoteka)
natisni (ime_dir + '.zip datoteka je bila uspešno ustvarjena!')
# Pokličite glavno funkcijo
če je __name__ == "__glavna__":
glavni ()
Zaženite skript
$ python3 zipcode2.pyVelikost mydir je 21 bajtov in po stiskanju velikost mydir.zadrgo je 2 bajta.
Primer-3: Stiskanje imenika, podanega z argumentom ukazne vrstice
Ustvari novo datoteko z imenom 'poštna številka3.py ' in dodajte naslednjo kodo. Če želite prebrati vrednost ukazne vrstice, še en modul python sys je uvožen z os in zipfile moduli.
# uvoz zahtevanih modulovuvoz os
uvoz sys
uvozi zipfile
# Razglasite funkcijo za vrnitev vseh poti datotek določenega imenika
def retrieve_file_paths (dirName):
# spremenljivka poti poti do datoteke
filePaths = []
# Preberite vse imenike, podimenike in sezname datotek
za root, imenike, datoteke v os.sprehod (dirName):
za ime datoteke v datotekah:
# Ustvarite celotno datotečno pot z os modulom.
filePath = os.pot.pridruži se (root, ime datoteke)
filePaths.pripiši (filePath)
# vrne vse poti
vrni filePaths
# Navedite glavno funkcijo
def main ():
# Preverite, ali sta med zagonom skripta podana dva argumenta
če je len (sys.argv) != 2:
print ("Ime mape ste vnesli v zip")
sys.izhod (1)
# Nastavite ime imenika iz argumenta ukaza
ime_dirka = sys.argv [1]
# Nastavite ime zip datoteke
zipFileName = ime_dirja + ".zadrga "
# Pokličite funkcijo za pridobitev vseh datotek in map dodeljenega imenika
filePaths = pridobi_datoteke_datoteke (ime_dir)
# natisnite seznam datotek, ki jih želite stisniti
print ('Naslednji seznam datotek bo stisnjen:')
za fileName v filePaths:
print (imeDatoteke)
# zapisovanje datotek in map v zip datoteko
zip_file = zipfile.ZipFile (zipFileName, 'w')
z zip_file:
# vsako datoteko napišite ločeno
za datoteko v filePaths:
zip_file.pisanje (datoteka)
print (datoteka zipFileName + 'je uspešno ustvarjena!')
# Pokličite glavno funkcijo
če je __name__ == "__glavna__":
glavni ()
Zaženite skript
$ python3 zipcode3.pypreskus je podano kot ime imenika v argumentu ukazne vrstice. Velikost preskus je 21 bajtov in po stiskanju velikost preskus.zadrgo je 2 bajta.
Upam, da vam bo ta vadnica pomagala uporabljati python za stiskanje katere koli datoteke ali imenika.