Met Python kun je snel zip / tar-archieven maken.
De volgende opdracht zal de volledige map zippen
shutil.make_archive(output_filename, 'zip', dir_name)
De volgende opdracht geeft u controle over de bestanden die u wilt archiveren
ZipFile.write(filename)
Hier zijn de stappen om een zip-bestand in Python te maken
Stap 1) Om een archiefbestand van Python te maken, moet u ervoor zorgen dat uw importverklaring correct en in orde is. Hier is de importverklaring voor het archief
from shutil import make_archive
Code Verklaring
- Importeer de klasse make_archive uit module shutil
- Gebruik de split-functie om de directory en de bestandsnaam op te splitsen van het pad naar de locatie van het tekstbestand (guru99)
- Vervolgens noemen we de module "shutil.make_archive (" guru99 archive, "zip", root_dir) "om een archiefbestand aan te maken, dat in zip-formaat zal zijn
- Daarna passeren we in de root-directory de dingen die we willen comprimeren. Dus alles in de directory wordt gezipt
- Wanneer u de code uitvoert, ziet u aan de rechterkant van het paneel dat het archief-zipbestand is gemaakt.
Stap 2)
Nu verschijnt uw archive.zip-bestand op uw besturingssysteem (Windows Verkenner)
Stap 3) Als u dubbelklikt op het bestand, ziet u de lijst met alle bestanden daarin.
Stap 4) In Python hebben we meer controle over het archief, omdat we kunnen bepalen welk specifiek bestand onder archief moet worden opgenomen. In ons geval zullen we twee bestanden opnemen onder archief "guru99.txt" en "guru99.txt.bak".
Code Verklaring
- Importeer de Zipfile-klasse uit de Python-module van het zipbestand. Deze module geeft volledige controle over het maken van zip-bestanden
- We maken een nieuw zipbestand met 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 hebben de variabele "newzip" gebruikt om te verwijzen naar het zip-bestand dat we hebben 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 gemaakt met de naam "guru99.zip"
Opmerking : hier geven we geen enkel 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 opgeruimd en automatisch gesloten.
Stap 5) Als u -> met de rechtermuisknop op het bestand (testguru99.zip) klikt en -> uw besturingssysteem selecteert (Windows Verkenner) , worden de archiefbestanden in de map weergegeven zoals hieronder weergegeven.
Als je dubbelklikt op het bestand "testguru99.zip", zal het een ander venster openen, en dit zal de bestanden tonen die erin zijn opgenomen.
Hier is de volledige code
Python 2-voorbeeld
import osimporteer shutiluit zipfile importeer ZipFilevan os importpadvan shutil import make_archivedef hoofd ():# Controleer of het bestand bestaatals path.exists ("guru99.txt"):# haal het pad naar het bestand in de huidige directory opsrc = path.realpath ("guru99.txt");# hernoem het originele bestandos.rename ("career.guru99.txt", "guru99.txt")# zet nu dingen in een ZIP-archiefroot_dir, tail = path.split (src)shutil.make_archive ("guru99 archive", "zip", root_dir)# meer fijnmazige controle over ZIP-bestandenmet ZipFile ("testguru99.zip", "w") als nieuw zipbestand:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")if __name __ == "__main__":hoofd()
Python 3-voorbeeld
import osimporteer shutiluit zipfile importeer ZipFilevan os importpadvan shutil import make_archive# Controleer of het bestand bestaatals path.exists ("guru99.txt"):# haal het pad naar het bestand in de huidige directory opsrc = path.realpath ("guru99.txt");# hernoem het originele bestandos.rename ("career.guru99.txt", "guru99.txt")# zet nu dingen in een ZIP-archiefroot_dir, tail = path.split (src)shutil.make_archive ("guru99 archive", "zip", root_dir)# meer fijnmazige controle over ZIP-bestandenmet ZipFile ("testguru99.zip", "w") als nieuwzip:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")
Overzicht
- Gebruik het commando "shutil.make_archive (" name "," zip ", root_dir) om de hele directory te zippen
- Gebruik het commando "ZipFile.write (bestandsnaam)" om de bestanden te selecteren die moeten worden gezipt.