Python

Uporabite python za stiskanje datoteke in imenika

Uporabite python za stiskanje datoteke in imenika
Stisnjena datoteka vsebuje veliko datotek, imenikov in podimenikov. Na voljo je veliko aplikacij za ustvarjanje stisnjene datoteke katere koli velike datoteke ali imenika in pridobivanje datotek ali map z ekstrahiranjem stisnjene datoteke. Ko želimo prenesti katero koli veliko ali mapo prek interneta, je bolje, da vsebino stisnemo pred prenosom. S tem je naloga hitrejša. Pythonove skripte lahko uporabite za stiskanje in ekstrahiranje katere koli velike datoteke ali imenika. zipfile za nalogo se uporablja modul pythona. Kako lahko s pomočjo python3 stisnete katero koli datoteko ali imenik, je z različnimi primeri prikazano v tej vadnici.

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 zipfile
zip_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.py

Velikost 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 modulov
 
uvoz 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.py

Velikost 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 modulov
 
uvoz 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.py

preskus 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.

Uporabna orodja za igralce Linux
Če radi igrate igre na Linuxu, obstaja verjetnost, da ste za izboljšanje igralne izkušnje uporabljali aplikacije in pripomočke, kot so Wine, Lutris in...
HD Remastered Games za Linux, ki prej še niso izdale Linuxa
Mnogi razvijalci iger in založniki pripravijo HD remaster starih iger, da podaljšajo življenjsko dobo franšize, zato oboževalci zahtevajo združljivost...
Kako uporabljati AutoKey za avtomatizacijo iger Linux
AutoKey je namizni pripomoček za avtomatizacijo za Linux in X11, programiran v Python 3, GTK in Qt. Z njegovo funkcijo skriptiranja in MACRO lahko avt...