Python ZIP soubor s příkladem

⚡ Chytré shrnutí

Python vytváří ZIP archivy pomocí vestavěných modulů shutil a zipfile. Zde se naučíte komprimovat celý adresář pomocí make_archive(), komprimovat specifické soubory pomocí ZipFile a extract, vypsat a číst obsah archivu.

  • 🗜️ make_archive(): shutil.make_archive() zabalí celý adresář do souboru .zip.
  • 📄 ZipFile.write(): ZipFile.write() přidává do archivu konkrétní soubory jeden po druhém.
  • 📂 extracvysoký(): ZipFile.extracFunkce tall() rozbalí všechny soubory z archivu do složky.
  • ???? seznam jmen(): ZipFile.namelist() vypíše názvy souborů v ZIP archivu.
  • 🤖 Pomoc s umělou inteligencí: Nástroje umělé inteligence, jako je Copilot, okamžitě generují PSČ a rozbalují je.

Python ZIP soubor

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)

Jak zazipovat celý adresář v Python

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

Code Vysvětlení

  • 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

Jak zazipovat konkrétní soubory pomocí ZipFile

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“ a „guru99.txt.bak“.

Python Soubor ZIP

Code Vysvětlení

  • 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

Kompletní Python Code Vytvořit ZIP soubor

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

Jak jít na extract (Rozbalení) ZIP souboru v Python

Chcete-li archiv rozbalit, otevřete jej v režimu pro čtení pomocí ZipFile a zavolejte extracvysoký() na extract každý soubor nebo extract() pro vytažení jednoho člena.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    myzip.extractall("extracted_files")

Bývalý/átracMetoda tall() zapíše všechny archivované soubory do složky, kterou předáte jako argument.

Jak zobrazit seznam souborů v ZIP souboru Archive

Archiv si můžete prohlédnout bez předchozího upozornění.tracMetoda namelist() vrací názvy všech souborů uložených v souboru ZIP.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    print(myzip.namelist())

Vypíše seznam názvů souborů obsažených v archivu.

Jak číst soubor uvnitř ZIP souboru Archive

Soubor člena si můžete přečíst přímo z archivu bez rozbalování.ping na disk pomocí metody open() objektu ZipFile.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    with myzip.open("guru99.txt") as f:
        print(f.read())

To je užitečné, když potřebujete pouze obsah jednoho souboru z velkého archivu.

Nejčastější dotazy

Použijte shutil.make_archive(name, 'zip', root_dir) pro zipování adresáře nebo otevřete ZipFile v režimu zápisu a zavolejte write() pro přidání konkrétních souborů do archivu.

shutil.make_archive() zkomprimuje celý adresář jedním voláním, zatímco zipfile.ZipFile poskytuje jemnější kontrolu a umožňuje přidávat, číst nebo exportovattracjednotlivé soubory v archivu.

Otevřete archiv pomocí ZipFile('file.zip', 'r') a zavolejte extractall('složka') do extracvšechno, nebo extract('name') pro vytažení jednoho souboru z archivu.

Otevřete soubor ZipFile v režimu čtení a zavolejte funkci namelist(), která vrátí seznam všech názvů souborů uložených v archivu bez exprimátoru.tracžádného z nich.

Příkaz with automaticky zavře archiv po skončení bloku, a to i v případě chyby, takže není nutné ručně volat funkci close().

Asistenti s umělou inteligencí, jako je GitHub Copilot, automaticky dokončují volání ZipFile a make_archive() a generují smyčky, které z popisu v prostém jazyce komprimují nebo rozbalují mnoho souborů.

Ano. Nástroje s umělou inteligencí dokáží automatizovat psaní zálohovacích a archivačních skriptů, vybrat si mezi shutil a zipfile a přidat ošetření chyb pro chybějící soubory nebo poškozené archivy.

Ano. Otevřete soubor ZipFile a poté použijte jeho metodu open() na členském souboru k přímému přečtení jeho obsahu bez nutnosti explicitního ...traculožení celého archivu na disk.

Shrňte tento příspěvek takto: