Eine komprimierte Datei enthält viele Dateien, Verzeichnisse und Unterverzeichnisse. Viele Anwendungen sind verfügbar, um eine Kompressdatei aus einer großen Datei oder einem Verzeichnis zu erstellen und Dateien oder Ordner abzurufen, indem eine komprimierte Datei extrahiert wird. Wenn wir einen großen oder Ordner über das Internet übertragen möchten, ist es besser, den Inhalt vor dem Übertragen zu komprimieren. Dies macht die Aufgabe schneller. Sie können Python -Skripte zum Komprimieren und Extrahieren einer großen Datei oder Verzeichnis verwenden.
zip-Datei Python -Modul wird verwendet, um die Aufgabe zu erledigen. Wie Sie Python3 verwenden können, um eine Datei oder Verzeichnis zu komprimieren, wird in diesem Tutorial unter Verwendung verschiedener Beispiele angezeigt.
Beispiel 1: Komprimieren einer einzelnen Datei
Erstellen Sie eine neue Datei namens 'Zipcode1.py ' und fügen Sie den folgenden Code hinzu. zip-Datei Das Modul wird importiert, um die Datei zu komprimieren. Temperatur.Reißverschluss wird als Zip -Dateinamen mit dem Schreibmodus und als nächstes den ursprünglichen Dateinamen zugewiesen, Temperatur.txt und Komprimierungsart werden als Parameter in der Schreibmethode angegeben.
Zipfile importieren
ZIP_FILE = ZIPFILE.Zipfile ('Temperatur.Zip ',' W ')
zip-Datei.Schreiben Sie ('Temperatur.txt ', compress_type = zipfile.ZIP_DEFLATED)
zip-Datei.schließen()
Führen Sie das Skript aus
$ python3 Zipcode1.py
Die Größe von Temperatur.txt Ist 27 Bytes und nach der Komprimierung die Größe von Temperatur.Reißverschluss Ist 2 Bytes.
Beispiel 2: Komprimieren eines bestimmten Verzeichnisses
Erstellen Sie eine neue Datei namens 'Zipcode2.py ' und fügen Sie den folgenden Code hinzu. Ein Verzeichnis kann viele Dateien, Ordner und Unterordner enthält. Um den Inhalt des Verzeichnisses zu lesen, Betriebssystem Python -Modul wird mit importiert mit zip-Datei Modul zum Komprimieren des Verzeichnisses. In diesem Skript, Mydir Verzeichnis wird zur Komprimierung verwendet.
# Erforderliche Module importieren
OS importieren
Zipfile importieren
# Deklarieren Sie die Funktion, um alle Dateipfade des jeweiligen Verzeichnisses zurückzugeben
Def retrieve_file_paths (DirName):
# Variable der Dateipfade einstellen
filepaths = []
# Lesen Sie alle Verzeichnisse, Unterverzeichnisse und Dateilisten
Für Root, Verzeichnisse, Dateien im Betriebssystem.Walk (DirName):
Für den Dateinamen in Dateien:
# Erstellen Sie den vollständigen Filepath mithilfe des OS -Moduls.
filepath = os.Weg.Join (Root, Dateiname)
Filepathen.anhängen (filepath)
# Alle Pfade zurückgeben
Rückgabe von Filepathen
# Die Hauptfunktion deklarieren
Def Main ():
# Weisen Sie den Namen des Verzeichnisses dem ZIP zu
Dir_name = 'mydir' '
# Rufen Sie die Funktion auf, um alle Dateien und Ordner des zugewiesenen Verzeichnisses abzurufen
filepaths = retrieve_file_paths (DIR_NAME)
# Drucken Sie die Liste aller Dateien, die zum Reißverschluss gebracht werden sollen
print ('Die folgende Liste der Dateien wird geschliffen:')
Für Dateinamen in Filepaths:
drucken (Dateiname)
# Dateien in eine Zipfile schreiben
ZIP_FILE = ZIPFILE.Zipfile (Dir_Name+'.Zip ',' W ')
mit Zip_file:
# jede Datei nacheinander schreiben
Für Datei in Filepaths:
zip-Datei.Schreiben (Datei)
print (DIR_NAME+'.Die ZIP -Datei wird erfolgreich erstellt!'))
# Rufen Sie die Hauptfunktion auf
Wenn __name__ == "__main__":
hauptsächlich()
Führen Sie das Skript aus
$ python3 zipcode2.py
Die Größe von Mydir Ist 21 Bytes und nach der Komprimierung die Größe von Mydir.Reißverschluss Ist 2 Bytes.
Beispiel-3: Komprimieren eines durch das Befehlszeilenarguments angegebenen Verzeichnisses
Erstellen Sie eine neue Datei namens 'Zipcode3.py ' und fügen Sie den folgenden Code hinzu. So lesen Sie den Befehlszeilenwert, ein anderes Python -Modul sys wird importiert mit Betriebssystem Und zip-Datei Module.
# Erforderliche Module importieren
OS importieren
Importsystem
Zipfile importieren
# Deklarieren Sie die Funktion, um alle Dateipfade eines bestimmten Verzeichnisses zurückzugeben
Def retrieve_file_paths (DirName):
# Variable der Dateipfade einstellen
filepaths = []
# Lesen Sie alle Verzeichnisse, Unterverzeichnisse und Dateilisten
Für Root, Verzeichnisse, Dateien im Betriebssystem.Walk (DirName):
Für den Dateinamen in Dateien:
# Erstellen Sie den vollständigen Filepath mithilfe des OS -Moduls.
filepath = os.Weg.Join (Root, Dateiname)
Filepathen.anhängen (filepath)
# Alle Pfade zurückgeben
Rückgabe von Filepathen
# Die Hauptfunktion deklarieren
Def Main ():
# Überprüfen Sie, ob zwei Argumente zum Zeitpunkt des Ausführens des Skripts angegeben werden
Wenn Len (sys.argv) != 2:
print ("Sie haben den Namen des Verzeichnisses in Zip eingeben")
sys.Ausgang (1)
# Legen Sie den Verzeichnisnamen aus dem Befehlsargument fest
Dir_name = sys.Argv [1]
# Legen Sie den Namen ZIP -Dateinamen fest
zipfilename = dir_name + ".Reißverschluss"
# Rufen Sie die Funktion auf, um alle Dateien und Ordner des zugewiesenen Verzeichnisses abzurufen
filepaths = retrieve_file_paths (DIR_NAME)
# Drucken Sie die Liste der zum Reißverschluss versehenen Dateien aus
print ('Die folgende Liste der Dateien wird geschliffen:')
Für Dateinamen in Filepaths:
drucken (Dateiname)
# Schreiben Sie Dateien und Ordner in eine Zipfile
ZIP_FILE = ZIPFILE.Zipfile (Zipfilename, 'W')
mit Zip_file:
# Schreiben Sie jede Datei separat
Für Datei in Filepaths:
zip-Datei.Schreiben (Datei)
Drucken (ZipFileName+'Datei wird erfolgreich erstellt!'))
# Rufen Sie die Hauptfunktion auf
Wenn __name__ == "__main__":
hauptsächlich()
Führen Sie das Skript aus
$ python3 Zipcode3.py
prüfen wird als Verzeichnisname im Befehlszeilenargument angegeben. Die Größe von prüfen Ist 21 Bytes und nach der Komprimierung die Größe von prüfen.Reißverschluss Ist 2 Bytes.
Ich hoffe, dieses Tutorial hilft Ihnen, Python für die Komprimierung einer Datei oder eines Verzeichnisses zu verwenden.