Příklad 1: Komprese jednoho souboru
Vytvořte nový soubor s názvem 'PSČ1.py ' a přidejte následující kód. zipfile modul je importován ke kompresi souboru. tepl.zip je přiřazen jako název souboru zip s režimem zápisu a dále jako původní název souboru, tepl.txt a typ komprese jsou uvedeny jako parametry v metodě zápisu.
importovat soubor zipzip_file = zipfile.ZipFile ('temp.zip ',' w ')
zip_file.write ('temp.txt ', compress_type = zipfile.ZIP_DEFLATED)
zip_file.zavřít()
Spusťte skript
$ python3 zipcode1.pyVelikost tepl.txt je 27 bytů a po komprimaci velikost tepl.zip je 2 bajty.
Příklad 2: Komprese konkrétního adresáře
Vytvořte nový soubor s názvem 'PSČ2.py ' a přidejte následující kód. Adresář může obsahovat mnoho souborů, složek a podsložek. Čtení obsahu adresáře, os modul pythonu je importován s zipfile modul komprimovat adresář. V tomto skriptu, mydir adresář se používá pro kompresi.
# import požadovaných modulůimport os
importovat soubor zip
# Deklarujte funkci, která vrátí všechny cesty k souborům konkrétního adresáře
def retrieve_file_paths (dirName):
# proměnná nastavení cesty k souboru
filePaths = []
# Přečíst všechny adresáře, podadresáře a seznamy souborů
pro root, adresáře, soubory v os.chůze (dirName):
pro název souboru v souborech:
# Vytvořte úplnou cestu k souboru pomocí modulu os.
filePath = os.cesta.připojit (root, název souboru)
filePaths.připojit (filePath)
# vrátit všechny cesty
návrat filePaths
# Deklarujte hlavní funkci
def main ():
# Přiřaďte název adresáře na zip
dir_name = 'mydir'
# Voláním funkce načtete všechny soubory a složky přiřazeného adresáře
filePaths = retrieve_file_paths (dir_name)
# tisk seznamu všech souborů, které mají být zazipovány
print ('Následující seznam souborů bude zazipován:')
pro fileName v filePaths:
print (název souboru)
# zápis souborů do souboru zip
zip_file = zipfile.ZipFile (dir_name + '.zip ',' w ')
se souborem zip_file:
# psaní každého souboru jeden po druhém
pro soubor v filePaths:
zip_file.zapsat (soubor)
tisk (dir_name + '.zip soubor byl úspěšně vytvořen!')
# Vyvolejte hlavní funkci
pokud __name__ == "__main__":
hlavní()
Spusťte skript
$ python3 zipcode2.pyVelikost mydir je 21 bytů a po komprimaci velikost mydir.zip je 2 bajty.
Příklad-3: Komprese adresáře zadaného argumentem příkazového řádku
Vytvořte nový soubor s názvem 'PSČ3.py ' a přidejte následující kód. Chcete-li číst hodnotu příkazového řádku, jiný modul pythonu sys je importován s os a zipfile moduly.
# import požadovaných modulůimport os
import sys
importovat soubor zip
# Deklarujte funkci, která vrátí všechny cesty k souborům konkrétního adresáře
def retrieve_file_paths (dirName):
# proměnná nastavení cesty k souboru
filePaths = []
# Přečíst všechny adresáře, podadresáře a seznamy souborů
pro root, adresáře, soubory v os.chůze (dirName):
pro název souboru v souborech:
# Vytvořte úplnou cestu k souboru pomocí modulu os.
filePath = os.cesta.připojit (root, název souboru)
filePaths.připojit (filePath)
# vrátit všechny cesty
návrat filePaths
# Deklarujte hlavní funkci
def main ():
# Zkontrolujte, zda jsou v době spuštění skriptu uvedeny dva argumenty
if len (sys.argv) != 2:
tisk ("Zadejte název adresáře pro zip")
sys.výstup (1)
# Nastavit název adresáře z argumentu příkazu
dir_name = sys.argv [1]
# Nastavte název souboru zip
zipFileName = dir_name + ".zip "
# Voláním funkce načtete všechny soubory a složky přiřazeného adresáře
filePaths = retrieve_file_paths (dir_name)
# vytiskne seznam souborů, které mají být zazipovány
print ('Následující seznam souborů bude zazipován:')
pro fileName v filePaths:
print (název souboru)
# zapisovat soubory a složky do souboru zip
zip_file = zipfile.ZipFile (zipFileName, 'w')
se souborem zip_file:
# každý soubor zapište zvlášť
pro soubor v filePaths:
zip_file.zapsat (soubor)
print (zipFileName + 'soubor je úspěšně vytvořen!')
# Vyvolejte hlavní funkci
pokud __name__ == "__main__":
hlavní()
Spusťte skript
$ python3 zipcode3.pytest je uveden jako název adresáře v argumentu příkazového řádku. Velikost test je 21 bytů a po komprimaci velikost test.zip je 2 bajty.
Doufám, že tento výukový program vám pomůže použít python pro kompresi libovolného souboru nebo adresáře.