Python ZIP soubor s příkladem
Python umožňuje rychle vytvářet archivy zip/tar.
Následující příkaz zazipuje celý adresář
shutil.make_archive(output_filename, 'zip', dir_name)
Následující příkaz vám dává kontrolu nad soubory, které chcete archivovat
ZipFile.write(filename)
Zde jsou kroky k vytvoření souboru ZIP Python
Krok 1) Chcete-li vytvořit archivní soubor z Python, ujistěte se, že máte příkaz k importu správný a v pořádku. Zde je výpis importu pro archiv from shutil import make_archive
Vysvětlení kódu
- Importujte třídu make_archive z modulu Shutil
- Použijte funkci rozdělení k rozdělení adresáře a názvu souboru od cesty k umístění textového souboru (guru99)
- Poté zavoláme modul “shutil.make_archive(”archiv guru99, “zip”, root_dir)” k vytvoření archivního souboru, který bude ve formátu zip
- Poté předáme v kořenovém adresáři věci, které chceme zazipovat. Takže vše v adresáři bude zazipováno
- Když kód spustíte, můžete vidět, že se na pravé straně panelu vytvořil archivní soubor zip.
Krok 2) Jakmile je váš archivní soubor vytvořen, můžete na soubor kliknout pravým tlačítkem a vybrat operační systém a zobrazí v něm vaše archivní soubory, jak je uvedeno níže
Nyní se váš soubor archive.zip objeví na vašem OS (Windows Explorer)
Krok 3) Když na soubor dvakrát kliknete, zobrazí se seznam všech souborů v něm.
Krok 4) In Python můžeme mít větší kontrolu nad archivem, protože můžeme definovat, který konkrétní soubor zahrnout do archivu. V našem případě zahrneme do archivu dva soubory „guru99.txt“ si „guru99.txt.bak“.
Vysvětlení kódu
- Importujte třídu Zipfile ze souboru zip Python modul. Tento modul poskytuje plnou kontrolu nad vytvářením souborů zip
- Vytvoříme nový Zipfile s názvem („testguru99.zip, „w“)
- Vytvoření nové třídy Zipfile vyžaduje předání oprávnění, protože se jedná o soubor, takže musíte do souboru zapsat informace jako newzip
- Použili jsme proměnnou „newzip“ k odkazování na soubor zip, který jsme vytvořili
- Pomocí funkce zápisu na proměnnou „newzip“ přidáme do archivu soubory „guru99.txt“ a „guru99.txt.bak“
Když spustíte kód, můžete vidět, že soubor je vytvořen na pravé straně panelu s názvem „guru99.zip“
Hodnocení: Zde nezadáváme žádný příkaz k „zavření“ souboru jako „newzip.close“, protože používáme zámek rozsahu „With“, takže když program spadne mimo tento rozsah, soubor se vyčistí a automaticky se zavře.
Krok 5) Když -> klikněte pravým tlačítkem na soubor (testguru99.zip) a -> vyberte svůj OS (Windows Explorer), zobrazí archivní soubory ve složce, jak je uvedeno níže.
Když dvakrát kliknete na soubor „testguru99.zip“, otevře se další okno, ve kterém se zobrazí soubory v něm obsažené.
Zde je úplný kód
Python 2 Příklad
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive def main(): # Check if file exists if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); # rename the original file os.rename("career.guru99.txt","guru99.txt") # now put things into a ZIP archive root_dir,tail = path.split(src) shutil.make_archive("guru99 archive", "zip", root_dir) # more fine-grained control over ZIP files with ZipFile("testguru99.zip","w") as newzip: newzip.write("guru99.txt") newzip.write("guru99.txt.bak") if __name__== "__main__": main()
Python 3 Příklad
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive # Check if file exists if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); # rename the original file os.rename("career.guru99.txt","guru99.txt") # now put things into a ZIP archive root_dir,tail = path.split(src) shutil.make_archive("guru99 archive","zip",root_dir) # more fine-grained control over ZIP files with ZipFile("testguru99.zip", "w") as newzip: newzip.write("guru99.txt") newzip.write("guru99.txt.bak")
Shrnutí
- Pro zazipování celého adresáře použijte příkaz “shutil.make_archive(”name”, “zip”, root_dir)
- Chcete-li vybrat soubory ke komprimování, použijte příkaz „ZipFile.write(název souboru)“