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-failzip_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.pySuurus 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 mooduleidimpordi 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.pySuurus 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 mooduleidimpordi 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.pytest 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.