Python

Kasutage faili ja kataloogi tihendamiseks pythoni

Kasutage faili ja kataloogi tihendamiseks pythoni
Tihendatud fail sisaldab palju faile, katalooge ja alamkatalooge. Suurte failide või kataloogide tihendusfaili loomiseks ning failide või kaustade hankimiseks tihendatud faili ekstraktimisega on saadaval palju rakendusi. Kui tahame suvalist suurt kausta või kausta Interneti kaudu üle kanda, on parem sisu enne teisaldamist tihendada. See muudab ülesande kiiremaks. Suure faili või kataloogi tihendamiseks ja väljavõtmiseks võite kasutada pythoni skripte. zipfail moodulit python kasutatakse ülesande täitmiseks. Kuidas õpet või faili või kataloogi tihendada python3 abil, on selles õpetuses näidatud mitmesuguste näidete abil.

Näide 1: Ühe faili tihendamine

Loo uus fail nimega 'sihtnumber1.py ' ja lisage järgmine kood. zipfail moodul imporditakse faili tihendamiseks. temp.tõmblukk määratakse ZIP-faili nimeks koos kirjutusrežiimiga ja järgmisena algse failinimega, temp.txt ja kompressi tüüp on kirjutamismeetodis toodud parameetritena.

importige ZIP-fail
zip_file = ZIP-fail.ZipFile ('temp.zip ',' w ')
zip_file.kirjuta ('temp.txt ', compress_type = zipfile.ZIP_DEFLATED)
zip_file.Sulge()

Käivitage skript

$ python3 sihtnumber1.py

Suurus temp.txt on 27 baiti ja pärast kokkusurumist suurus temp.tõmblukk on 2 baiti.

Näide 2: kindla kataloogi tihendamine

Loo uus fail nimega 'sihtnumber2.py ' ja lisage järgmine kood. Kataloog võib sisaldada palju faile, kaustu ja alamkaustu. Kataloogi sisu lugemiseks, os moodulit python imporditakse koos zipfail moodul kataloogi tihendamiseks. Selles skriptis, mydir kataloogi kasutatakse tihendamiseks.

# importida vajalikke mooduleid
 
impordi os
importige ZIP-fail
 
 
# Kuulutage funktsioon, et tagastada konkreetse kataloogi kõik failirajad
def retrieve_file_paths (dirName):
 
# seadistusfaili teede muutuja
filePaths = []
 
# Loe kõiki katalooge, alamkatalooge ja faililoendeid
root, kataloogid, failid os.kõnd (dirName):
failide failinime jaoks:
# Looge täielik failitee OS-mooduli abil.
filePath = os.tee.liitu (juur, failinimi)
filePaths.lisa (filePath)
 
# tagastab kõik teed
tagastage filePaths
 
 
# Kuulutage põhifunktsioon
def main ():
# Määrake zip-kataloogi nimi
dir_name = 'mydir'
 
# Kõigi määratud kataloogi failide ja kaustade toomiseks helistage funktsioonile
filePaths = retrieve_file_paths (dir_name)
 
# kõigi pakitavate failide loendi printimine
print ('Pakitakse järgmine failide loend:')
faili Name jaoks failisPaths:
print (failinimi)
 
# failide kirjutamine ZIP-faili
zip_file = ZIP-fail.ZipFile (dir_name + '.zip ',' w ')
koos ZIP-failiga:
# kirjutab iga faili ükshaaval
faili jaoks failisPaths:
zip_file.kirjuta (fail)
 
print (dir_name + '.zip-faili loomine õnnestus!')
 
# Helistage põhifunktsioonile
kui __nimi__ == "__main__":
peamine ()

Käivitage skript

$ python3 sihtnumber2.py

Suurus mydir on 21 baiti ja pärast kokkusurumist suurus mydir.tõmblukk on 2 baiti.

Näide 3: kataloogi tihendamine käsureaargumendiga

Loo uus fail nimega 'sihtnumber3.py ' ja lisage järgmine kood. Käsurea väärtuse lugemiseks teine ​​pythoni moodul sys imporditakse koos os ja zipfail moodulid.

# importida vajalikke mooduleid
 
impordi os
impordi süsteem
importige ZIP-fail
 
# Kuulutage funktsioon, et tagastada kindla kataloogi kõik failirajad
def retrieve_file_paths (dirName):
 
# seadistusfaili teede muutuja
filePaths = []
 
# Loe kõiki katalooge, alamkatalooge ja faililoendeid
root, kataloogid, failid os.kõnd (dirName):
failide failinime jaoks:
# Looge täielik failitee OS-mooduli abil.
filePath = os.tee.liitu (juur, failinimi)
filePaths.lisa (filePath)
 
# tagastab kõik teed
tagastage filePaths
 
 
# Kuulutage põhifunktsioon
def main ():
 
# Kontrollige, kas skripti käitamise ajal on antud kaks argumenti
kui len (sys.argv) != 2:
print ("Zip-faili jaoks on sisestatud kataloogi nimi")
sys.väljapääs (1)
 
# Määrake kataloogi nimi käsuargumendist
dir_name = sys.argv [1]
 
# Määrake ZIP-faili nimi
zipFileName = dir_name + ".tõmblukk "
 
# Kõigi määratud kataloogi failide ja kaustade toomiseks helistage funktsioonile
filePaths = retrieve_file_paths (dir_name)
 
# printige pakitavate failide loend
print ('Pakitakse järgmine failide loend:')
faili Name jaoks failisPaths:
print (failinimi)
 
# kirjuta failid ja kaustad ZIP-faili
zip_file = ZIP-fail.ZipFile (zipFileName, 'w')
koos ZIP-failiga:
# kirjuta iga fail eraldi
faili jaoks failisPaths:
zip_file.kirjuta (fail)
 
print (fail zipFileName + 'on edukalt loodud!')
 
# Helistage põhifunktsioonile
kui __nimi__ == "__main__":
peamine ()

Käivitage skript

$ python3 sihtnumber3.py

test antakse käsureaargumendis katalooginimena. Suurus test on 21 baiti ja pärast kokkusurumist suurus test.tõmblukk on 2 baiti.

Loodan, et see õpetus aitab teil Pythoni kasutada mis tahes failide või kataloogide tihendamiseks.

Juhtige ja hallake hiire liikumist mitme kuvari vahel Windows 10-s
Dual Display Mouse Manager võimaldab teil kontrollida ja konfigureerida hiire liikumist mitme monitori vahel, aeglustades selle liikumist piiri läheda...
WinMouse võimaldab teil kohandada ja parandada hiirekursori liikumist Windowsi arvutis
Kui soovite oma hiirekursori vaikefunktsioone paremaks muuta, kasutage vabavara WinMouse. See lisab rohkem funktsioone, mis aitavad teil alandlikust h...
Hiire vasakklõps nupp ei tööta Windows 10-s
Kui kasutate oma sülearvuti või lauaarvutiga spetsiaalset hiirt, kuid hiire vasakklõps nupp ei tööta mingil põhjusel operatsioonisüsteemis Windows 10/...