ZIP-Archive in Python erstellen: Vom gesamten Verzeichnis bis zur benutzerdefinierten Dateiauswahl
ZIP-Archive in Python erstellen: Vom gesamten Verzeichnis bis zur benutzerdefinierten Dateiauswahl
Python macht es unkompliziert, ZIP- und TAR-Archive zu erstellen, egal ob Sie ein gesamtes Verzeichnis komprimieren oder bestimmte Dateien auswählen müssen.
Verwenden Sie shutil.make_archive für ein schnelles, verzeichnisweites ZIP:
shutil.make_archive(ausgabe_dateiname, 'zip', verzeichnis_name)
Für granulare Kontrolle lässt die zipfile.ZipFile-Klasse Sie einzelne Dateien spezifizieren:
ZipFile.write(dateiname)
Schritt 1: Umgebung vorbereiten
- Erforderliche Module importieren:
from shutil import make_archive from zipfile import ZipFile from os import path import os
- Sicherstellen, dass die Quelldatei existiert und ihren absoluten Pfad erhalten.
if path.exists("guru99.txt"): src = path.realpath("guru99.txt") - Optional: Eine existierende Datei umbenennen, um dem Zielnamen zu entsprechen.
Schritt 2: Gesamtes Verzeichnis zippen
Wenn Sie alles in einem Ordner archivieren wollen, verwenden Sie make_archive:
root_dir, _ = path.split(src)
make_archive("guru99_archiv", "zip", root_dir)
Dies erstellt guru99_archiv.zip im aktuellen Arbeitsverzeichnis.
Schritt 3: Spezifische Dateien zu einem neuen ZIP hinzufügen
Wenn Sie feinere Kontrolle benötigen, ist die ZipFile-Klasse ideal:
with ZipFile("testguru99.zip", "w") as neues_zip:
neues_zip.write("guru99.txt")
neues_zip.write("guru99.txt.bak")
Das with-Statement schließt das Archiv automatisch, wenn der Block endet.
Schritt 4: Ergebnis verifizieren
Öffnen Sie die generierte ZIP-Datei in Ihrem Betriebssystem-Datei-Explorer, um den Inhalt zu sehen. Unter Windows zeigt ein Doppelklick eine Liste der enthaltenen Dateien an.
Unten sind illustrative Screenshots aus einem typischen Workflow:







Vollständiger Code (Python 3):
import os
from shutil import make_archive
from zipfile import ZipFile
from os import path
def main():
if path.exists("guru99.txt"):
# Absoluten Pfad zur Quelldatei erhalten
src = path.realpath("guru99.txt")
# Optional: existierende Datei umbenennen
os.rename("karriere.guru99.txt", "guru99.txt")
# Gesamtes Verzeichnis mit der Datei archivieren
root_dir, _ = path.split(src)
make_archive("guru99_archiv", "zip", root_dir)
# Zweites ZIP mit nur ausgewählten Dateien erstellen
with ZipFile("testguru99.zip", "w") as neues_zip:
neues_zip.write("guru99.txt")
neues_zip.write("guru99.txt.bak")
if __name__ == "__main__":
main()
Zusammenfassung
- Um ein gesamtes Verzeichnis zu zippen, rufen Sie
shutil.make_archive('name', 'zip', root_dir)auf. - Um spezifische Dateien hinzuzufügen, verwenden Sie
ZipFile.write(dateiname)innerhalb eineswith-Blocks.
Python
- Python File I/O: Dateioperationen, Lesen, Schreiben und Verwaltung meistern
- Dateien in Java mit BufferedReader lesen – Praktischer Leitfaden mit Beispielen
- Pythons strip()-Methode meistern: Umfassender Leitfaden & Praxisbeispiele
- Pythons str.count(): Zeichen & Teilstrings zählen mit Beispielen
- Python round()-Funktion erklärt mit praktischen Beispielen
- Pythons map()-Funktion meistern: Syntax, Beispiele und Best Practices
- Python timeit(): Ausführungszeit messen mit praktischen Beispielen
- Python Counter in collections: Effizientes Zählen, Aktualisieren und arithmetische Operationen
- Python list.count(): Experten-Guide mit praktischen Beispielen
- Python list.index(): Element-Positionen finden mit praktischen Beispielen