Python ZIP-Datei mit Beispiel
Python ermöglicht Ihnen die schnelle Erstellung von Zip-/Tar-Archiven.
Der folgende Befehl komprimiert das gesamte Verzeichnis
shutil.make_archive(output_filename, 'zip', dir_name)
Mit dem folgenden Befehl können Sie die Dateien steuern, die Sie archivieren möchten
ZipFile.write(filename)
Hier sind die Schritte zum Erstellen einer Zip-Datei in Python
Schritt 1) So erstellen Sie eine Archivdatei aus Python, stellen Sie sicher, dass Ihre Importanweisung korrekt und in der richtigen Reihenfolge ist. Hier lautet die Importanweisung für das Archiv from shutil import make_archive
Code Erklärung
- Importieren Sie die Klasse make_archive aus dem Modul shutil
- Verwenden Sie die Split-Funktion, um das Verzeichnis und den Dateinamen vom Pfad zum Speicherort der Textdatei aufzuteilen (guru99).
- Dann rufen wir das Modul „shutil.make_archive(„guru99 archive“, „zip“, root_dir)“ auf, um eine Archivdatei im Zip-Format zu erstellen.
- Danach übergeben wir das Stammverzeichnis der Dinge, die wir komprimieren möchten. Daher wird alles im Verzeichnis gezippt
- Wenn Sie den Code ausführen, können Sie auf der rechten Seite des Fensters sehen, dass die ZIP-Archivdatei erstellt wird.
Schritt 2) Sobald Ihre Archivdatei erstellt ist, können Sie mit der rechten Maustaste auf die Datei klicken und das Betriebssystem auswählen. Ihre Archivdateien werden darin wie unten gezeigt angezeigt.
Jetzt wird Ihre Datei archive.zip auf Ihrem Betriebssystem angezeigt (Windows Forscher)
Schritt 3) Wenn Sie auf die Datei doppelklicken, wird die Liste aller darin enthaltenen Dateien angezeigt.
Schritt 4) In Python Wir haben mehr Kontrolle über das Archiv, da wir definieren können, welche spezifische Datei in das Archiv aufgenommen werden soll. In unserem Fall werden wir zwei Dateien in das Archiv aufnehmen „guru99.txt“ und „guru99.txt.bak“.
Code Erklärung
- Zipfile-Klasse aus Zip-Datei importieren Python Modul. Dieses Modul gibt volle Kontrolle über die Erstellung von Zip-Dateien
- Wir erstellen eine neue Zip-Datei mit dem Namen („testguru99.zip, „w“)
- Das Erstellen einer neuen Zipfile-Klasse erfordert die Übergabe einer Berechtigung, da es sich um eine Datei handelt. Daher müssen Sie Informationen als newzip in die Datei schreiben
- Wir haben die Variable „newzip“ verwendet, um auf die von uns erstellte ZIP-Datei zu verweisen
- Mit der Schreibfunktion auf die Variable „newzip“ fügen wir die Dateien „guru99.txt“ und „guru99.txt.bak“ zum Archiv hinzu
Wenn Sie den Code ausführen, können Sie sehen, dass die Datei auf der rechten Seite des Panels mit dem Namen „guru99.zip“ erstellt wird.
Note: Hier geben wir keinen Befehl zum „Schließen“ der Datei wie „newzip.close“, da wir die Bereichssperre „Mit“ verwenden. Wenn das Programm also außerhalb dieses Bereichs liegt, wird die Datei bereinigt und automatisch geschlossen.
Schritt 5) Wenn Sie -> Rechtsklick auf die Datei (testguru99.zip) und -> wählen Sie Ihr Betriebssystem aus (Windows Forscher), werden die Archivdateien im Ordner wie unten dargestellt angezeigt.
Wenn Sie auf die Datei „testguru99.zip“ doppelklicken, wird ein weiteres Fenster geöffnet, in dem die darin enthaltenen Dateien angezeigt werden.
Hier ist der vollständige Code
Python 2 Beispiel
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 Beispiel
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")
Zusammenfassung
- Um das gesamte Verzeichnis zu komprimieren, verwenden Sie den Befehl „shutil.make_archive(„name“,”zip“, root_dir)
- Um die zu komprimierenden Dateien auszuwählen, verwenden Sie den Befehl „ZipFile.write(filename)“