Python ZIP-bestand met voorbeeld
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)
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.
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.
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")
Samenvatting
- Om een hele directory te zippen, gebruikt u de opdracht “shutil.make_archive(“name”,”zip”, root_dir)
- Om de bestanden te selecteren die u wilt zippen, gebruikt u de opdracht “ZipFile.write(filename)”