Príklad-1: Komprimácia jedného súboru
Vytvorte nový súbor s názvomPSČ1.py ' a pridajte nasledujúci kód. zipfile modul sa importuje na komprimáciu súboru. tepl.PSČ je priradený ako názov zip súboru s režimom zápisu a ďalší, pôvodný názov súboru, tepl.TXT a typ kompresie sú uvedené ako parametre v metóde zápisu.
importovať súbor zipzip_file = zipfile.ZipFile ('temp.zip ',' w ')
zip_file.napísať ('tepl.txt ', compress_type = zipfile.ZIP_DEFLATED)
zip_file.Zavrieť()
Spustite skript
$ python3 zipcode1.pyVeľkosť tepl.TXT je 27 bajtov a po kompresii veľkosť tepl.PSČ je 2 bajty.
Príklad-2: Kompresia konkrétneho adresára
Vytvorte nový súbor s názvomPSČ2.py ' a pridajte nasledujúci kód. Adresár môže obsahovať veľa súborov, priečinkov a podpriečinkov. Čítanie obsahu adresára, os modul pythonu je importovaný s zipfile modul na kompresiu adresára. V tomto scenári, mydir adresár sa používa na kompresiu.
# import požadovaných modulovimport os
importovať súbor zip
# Deklarujte funkciu, ktorá vráti všetky cesty k súborom konkrétneho adresára
def retrieve_file_paths (dirName):
# nastavenie premennej cesty k súboru
filePaths = []
# Prečítajte si všetky adresáre, podadresáre a zoznamy súborov
pre root, adresáre, súbory v os.chôdza (dirName):
pre názov súboru v súboroch:
# Vytvorte úplnú cestu k súboru pomocou modulu os.
filePath = os.cesta.pripojiť sa (root, názov súboru)
filePaths.append (filePath)
# vrátiť všetky cesty
návrat filePaths
# Deklarujte hlavnú funkciu
def main ():
# Priraďte názov adresára na formát zip
dir_name = 'mydir'
# Zavolajte funkciu na načítanie všetkých súborov a priečinkov z priradeného adresára
filePaths = retrieve_file_paths (dir_name)
# vypíše zoznam všetkých súborov, ktoré sa majú komprimovať
print ('Nasledujúci zoznam súborov bude zazipovaný:')
pre názov súboru v filePaths:
print (názov súboru)
# zápis súborov do súboru zip
zip_file = zipfile.ZipFile (dir_name + '.zip ',' w ')
so súborom zip_file:
# písanie jednotlivých súborov jeden po druhom
pre súbor v filePaths:
zip_file.zapísať (súbor)
print (dir_name + '.súbor zip bol úspešne vytvorený!")
# Zavolajte hlavnú funkciu
ak __name__ == "__main__":
hlavný()
Spustite skript
$ python3 zipcode2.pyVeľkosť mydir je 21 bajtov a po kompresii veľkosť mydir.PSČ je 2 bajty.
Príklad-3: Komprimácia adresára zadaného argumentom príkazového riadku
Vytvorte nový súbor s názvomPSČ3.py ' a pridajte nasledujúci kód. Na načítanie hodnoty príkazového riadku slúži ďalší modul pythonu sys sa dováža s os a zipfile modulov.
# import požadovaných modulovimport os
import sys
importovať súbor zip
# Deklarujte funkciu, ktorá vráti všetky cesty k súborom konkrétneho adresára
def retrieve_file_paths (dirName):
# premenná nastavenia cesty k súboru
filePaths = []
# Prečítajte si všetky adresáre, podadresáre a zoznamy súborov
pre root, adresáre, súbory v os.chôdza (dirName):
pre názov súboru v súboroch:
# Vytvorte úplnú cestu k súboru pomocou modulu os.
filePath = os.cesta.pripojiť sa (root, názov súboru)
filePaths.append (filePath)
# vrátiť všetky cesty
návrat filePaths
# Deklarujte hlavnú funkciu
def main ():
# Skontrolujte, či sú v čase spustenia skriptu uvedené dva argumenty
ak len (sys.argv) != 2:
print ("Zadali ste názov adresára na zip")
sys.výstup (1)
# Nastavte názov adresára z argumentu príkazu
dir_name = sys.argv [1]
# Nastavte názov zip súboru
zipFileName = dir_name + ".PSČ"
# Zavolajte funkciu na načítanie všetkých súborov a priečinkov priradeného adresára
filePaths = retrieve_file_paths (dir_name)
# vypíše zoznam súborov, ktoré sa majú komprimovať
print ('Nasledujúci zoznam súborov bude zazipovaný:')
pre názov súboru v filePaths:
print (názov súboru)
# zapisovať súbory a priečinky do súboru zip
zip_file = zipfile.ZipFile (zipFileName, 'w')
so súborom zip_file:
# každý súbor napíšte osobitne
pre súbor v filePaths:
zip_file.zapísať (súbor)
print (zipFileName + 'súbor je úspešne vytvorený!")
# Zavolajte hlavnú funkciu
ak __name__ == "__main__":
hlavný()
Spustite skript
$ python3 zipcode3.pytest sa uvádza ako názov adresára v argumente príkazového riadku. Veľkosť test je 21 bajtov a po kompresii veľkosť test.PSČ je 2 bajty.
Dúfam, že vám tento návod pomôže použiť python na kompresiu ľubovoľného súboru alebo adresára.