Ich habe ein Skript geschrieben. Es findet den aktuellen Pfad und ändert den Pfad und die Reißverschlüsse. Dann möchte ich, dass es die Zip-Datei einfach in ein anderes Verzeichnis kopiert und am Ende den Inhalt des Ordners entfernt. Aber es reißt einmal und reißt wieder die ganzen Ordner und Zip-Dateien. Die intial Situation ist wie in Abbildung 1. Python - Ich zip einige Ordner mit Unterordnern, aber es reißt zweimal.
Das Skript ist wie folgt:
import os
import zipfile
import shutil
import glob
Pfad = os.getcwd()
newPfad = 'D'+ Pfad[1:]
Zip_name=os.path.basename(os.path.normpath(Pfad))
shutil.make_archive(Zip_name, 'zip', Pfad)
if not os.path.exists(newPfad):
os.makedirs(newPfad)
dest_dir=newPfad
files = glob.iglob(os.path.join(Pfad, "*.zip"))
for file in files:
if os.path.isfile(file):
shutil.copy2(file, dest_dir)
shutil.rmtree(Pfad)
Und schließlich wird das Ergebnis in der folgenden Abbildung dargestellt.
Die Batch-Datei ist nur das Python-Skript für die Ausführung.
Wie kann ich die folgende gewünschte Situation bekommen?
Sie packen das gesamte aktuelle Verzeichnis in die Zip-Datei (gespeichert auch im aktuellen Verzeichnis). Wenn Sie das nächste Mal Ihr Skript ausführen, ist das Archiv da und es wird auch gepackt. Sie sollten 'shilil.move' anstelle von' shuthil.copy2' eingeben. Als Anmerkung entfernt die letzte Zeile das aktuelle Verzeichnis, was zu unerwarteten Ergebnissen führen kann. – CristiFati