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

Python Soubor ZIP

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

Python Soubor ZIP

Nyní se váš soubor archive.zip objeví na vašem OS (Windows Explorer)

Python Soubor ZIP

Krok 3) Když na soubor dvakrát kliknete, zobrazí se seznam všech souborů v něm.

Python Soubor ZIP

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

Python Soubor ZIP

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.

Python Soubor ZIP

Když dvakrát kliknete na soubor „testguru99.zip“, otevře se další okno, ve kterém se zobrazí soubory v něm obsažené.

Python Soubor ZIP

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)“