Python ZIP-bestand met voorbeeld

โšก Slimme samenvatting

Python Maakt ZIP-archieven met de ingebouwde modules shutil en zipfile. Hier leer je hoe je een volledige map kunt comprimeren met make_archive(), specifieke bestanden kunt comprimeren met ZipFile, en meer.tract, lijst en lees de archiefinhoud.

  • ๏ธ make_archive(): shutil.make_archive() comprimeert een volledige map tot een .zip-bestand.
  • ๐Ÿ“„ ZipFile.write(): ZipFile.write() voegt specifieke bestanden รฉรฉn voor รฉรฉn toe aan een archief.
  • ๐Ÿ“‚ extraclang(): ZipFile.extractall() pakt alle bestanden uit een archief uit naar een map.
  • ๐Ÿ“‹ namelist(): ZipFile.namelist() geeft een lijst van de bestandsnamen in een ZIP-archief.
  • ๐Ÿค– AI-ondersteuning: AI-tools zoals Copilot genereren direct postcodes en decodes.

Python Zip bestand

Python Hiermee kunt u snel zip-/tar-archieven maken.

Met de volgende opdracht wordt de hele map gezipt

shutil.make_archive(output_filename, 'zip', dir_name)

Met de volgende opdracht krijgt u controle over de bestanden die u wilt archiveren

ZipFile.write(filename)

Hoe comprimeer je een volledige map in Python

Hier zijn de stappen om een โ€‹โ€‹zipbestand te maken Python

Stap 1) Om een โ€‹โ€‹archiefbestand te maken van Python, zorg ervoor dat uw import statement correct en in orde is. Hier is de import statement voor het archief from shutil import make_archive

Python ZIP-bestand

Code Uitleg

  • Importeer make_archive klasse van module shutil
  • Gebruik de splitsfunctie om de directory en de bestandsnaam op te splitsen van het pad naar de locatie van het tekstbestand (guru99)
  • Vervolgens roepen we de module โ€œshutil.make_archive(โ€œguru99 archive, โ€œzipโ€, root_dir)โ€ aan om een โ€‹โ€‹archiefbestand te maken, dat in zip-formaat zal zijn
  • Daarna geven we de hoofdmap door van de dingen die we willen inpakken. Dus alles in de map wordt gecomprimeerd
  • Wanneer u de code uitvoert, ziet u aan de rechterkant van het paneel dat het archief-zipbestand is aangemaakt.

Stap 2) Zodra uw archiefbestand is gemaakt, kunt u met de rechtermuisknop op het bestand klikken en het besturingssysteem selecteren. Uw archiefbestanden worden dan weergegeven zoals hieronder weergegeven.

Python ZIP-bestand

Nu zal uw archive.zip-bestand op uw besturingssysteem verschijnen (Windows Verkenner)

Python ZIP-bestand

Stap 3) Wanneer u dubbelklikt op het bestand, ziet u een lijst met alle bestanden die erin staan.

Python ZIP-bestand

Hoe specifieke bestanden te comprimeren met ZipFile

Stap 4) In Python we kunnen meer controle hebben over het archief, omdat we kunnen definiรซren welk specifiek bestand we onder het archief willen opnemen. In ons geval zullen we twee bestanden onder het archief opnemen โ€œguru99.txtโ€ en โ€œguru99.txt.bakโ€.

Python ZIP-bestand

Code Uitleg

  • Importeer de Zipfile-klasse uit een zipbestand Python module. Deze module geeft volledige controle over het maken van zip-bestanden
  • We maken een nieuw zipbestand met de naam ( โ€œtestguru99.zip, โ€œwโ€)
  • Voor het maken van een nieuwe Zipfile-klasse is toestemming vereist omdat het een bestand is, dus u moet informatie in het bestand schrijven als newzip
  • We gebruikten de variabele โ€œnewzipโ€ om te verwijzen naar het zipbestand dat we hadden gemaakt
  • Met behulp van de schrijffunctie op de variabele โ€œnewzipโ€ voegen we de bestanden โ€œguru99.txtโ€ en โ€œguru99.txt.bakโ€ toe aan het archief

Wanneer je de code uitvoert, kun je zien dat het bestand aan de rechterkant van het paneel is aangemaakt met de naam โ€œguru99.zipโ€

Note: Hier geven we geen commando om het bestand te โ€œsluitenโ€ zoals โ€œnewzip.closeโ€ omdat we โ€œWithโ€ scope lock gebruiken, dus als het programma buiten dit bereik valt, wordt het bestand opgeschoond en automatisch gesloten.

Stap 5) Wanneer je -> klik met de rechtermuisknop op het bestand (testguru99.zip) en -> selecteer uw besturingssysteem (Windows Verkenner), worden de archiefbestanden in de map weergegeven zoals hieronder weergegeven.

Python ZIP-bestand

Wanneer u dubbelklikt op het bestand โ€œtestguru99.zipโ€, wordt er een ander venster geopend, waarin de bestanden die erin zijn opgenomen worden weergegeven.

Python ZIP-bestand

Volledige Python Code Een ZIP-bestand maken

Hier is de volledige code

Python 2 Voorbeeld

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 Voorbeeld

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

Hoe te Extract (Uitpakken) een ZIP-bestand in Python

Om een โ€‹โ€‹archief uit te pakken, opent u het in leesmodus met ZipFile en roept u ex aan.traclang() tot uittract elk bestand, of extract() om รฉรฉn enkel lid eruit te halen.

from zipfile import ZipFile

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

De extracDe `tall()`-methode schrijft alle gearchiveerde bestanden naar de map die je als argument doorgeeft.

Hoe bestanden in een ZIP-bestand weer te geven Archive

U kunt een archief inspecteren zonder extracting it. De namelist()-methode retourneert de namen van alle bestanden die in het ZIP-bestand zijn opgeslagen.

from zipfile import ZipFile

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

Dit geeft een lijst weer van de bestandsnamen in het archief.

Hoe lees je een bestand in een ZIP-bestand? Archive

Je kunt een ledenbestand rechtstreeks vanuit het archief lezen zonder het uit te pakken.ping het naar de schijf schrijven met behulp van de open()-methode van ZipFile.

from zipfile import ZipFile

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

Dit is handig wanneer u slechts de inhoud van รฉรฉn bestand uit een groot archief nodig hebt.

Veelgestelde vragen

Gebruik shutil.make_archive(name, 'zip', root_dir) om een โ€‹โ€‹map te comprimeren, of open een ZipFile in schrijfmodus en roep write() aan om specifieke bestanden aan het archief toe te voegen.

`shutil.make_archive()` comprimeert een hele map in รฉรฉn keer, terwijl `zipfile.ZipFile` meer controle biedt, waardoor je bestanden kunt toevoegen, lezen of extraheren.tract individuele bestanden binnen het archief.

Open het archief met ZipFile('file.zip', 'r') en roep ex aantraclang('map') tot extracalles, of bijvoorbeeldtract('name') om een โ€‹โ€‹enkel bestand uit het archief te halen.

Open het ZipFile in leesmodus en roep namelist() aan. Deze functie retourneert een lijst met alle bestandsnamen die in het archief zijn opgeslagen, zonder uitzonderingen.tracting een van hen.

De `with`-instructie sluit het archief automatisch wanneer het blok eindigt, zelfs als er een fout optreedt, zodat u `close()` niet handmatig hoeft aan te roepen.

AI-assistenten zoals GitHub Copilot vullen automatisch ZipFile- en make_archive()-aanroepen aan en genereren lussen die veel bestanden comprimeren of decomprimeren op basis van een beschrijving in eenvoudige taal.

Ja. Met behulp van AI-gestuurde tools kunnen back-up- en archiveringsscripts geautomatiseerd worden, kan er gekozen worden tussen shutil en zipfile, en kan foutafhandeling worden toegevoegd voor ontbrekende bestanden of beschadigde archieven.

Ja. Open het ZipFile en gebruik vervolgens de open()-methode op een lidbestand om de inhoud ervan direct te lezen, zonder extracHet hele archief naar de schijf schrijven.

Vat dit bericht samen met: