Krajta

Pomocí pythonu zipujte soubor a adresář

Pomocí pythonu zipujte soubor a adresář
Komprimovaný soubor obsahuje mnoho souborů, adresářů a podadresářů. K dispozici je mnoho aplikací pro vytvoření komprimovaného souboru jakéhokoli velkého souboru nebo adresáře a načtení souborů nebo složek extrahováním komprimovaného souboru. Pokud chceme přes internet přenést jakoukoli velkou složku nebo složku, je lepší obsah před přenosem komprimovat. Tím je úkol rychlejší. Můžete použít pythonovské skripty pro kompresi a extrahování jakéhokoli velkého souboru nebo adresáře. zipfile k provedení úkolu se používá modul pythonu. Jak můžete použít python3 ke kompresi libovolného souboru nebo adresáře, je v tomto tutoriálu ukázáno pomocí různých příkladů.

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

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

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

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

Jak změnit levé a pravé tlačítko myši na počítači se systémem Windows 10
Je úplnou normou, že všechna zařízení počítačových myší jsou ergonomicky navržena pro praváky. K dispozici jsou však myší zařízení, která jsou speciál...
Emulace kliknutí myší vznášením pomocí myši Clickless Mouse ve Windows 10
Používání myši nebo klávesnice ve špatném držení těla nadměrného používání může mít za následek mnoho zdravotních problémů, včetně napětí, syndromu ka...
Přidejte gesta myši do Windows 10 pomocí těchto bezplatných nástrojů
V posledních letech se počítače a operační systémy značně vyvinuly. Bývaly doby, kdy uživatelé museli procházet správci souborů pomocí příkazů. Stejně...