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.

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
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.
Nu zal uw archive.zip-bestand op uw besturingssysteem verschijnen (Windows Verkenner)
Stap 3) Wanneer u dubbelklikt op het bestand, ziet u een lijst met alle bestanden die erin staan.
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โ.
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.
Wanneer u dubbelklikt op het bestand โtestguru99.zipโ, wordt er een ander venster geopend, waarin de bestanden die erin zijn opgenomen worden weergegeven.
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.







