(Linux) Python: Ordner zippen
Hallo Leute. Ich arbeite gerade an einem Programm in Python, bei dem es ein wichtiger Bestandteil ist, einen Ordner aus einem "auswärtigen" Verzeichnis, das heisst nicht das Verzeichniss mit der Python-Datei, zu komprimieren. Lange Rede, kurzer Sinn, ich möchte dass das Programm einen Ordner mit allen seinen Bestandteilen, auch Unterordner, zippt. Der zu zippende Ordner befindet sich aber nicht bei der Python-Datei, sondern ganz woanders. Ich habe es schon mit "os.system(cd)" ect und "os.system(zip -r packed.zip /zuZippen/)" versucht aber es funktioniert nicht. Es funktioniert nur, wenn ich es selbst im Terminal eingebe. Hat jemand eine Erklärung dafür oder die Lösung? Danke im Voraus, kururin. PS: Ich nutze Linux.
2 Antworten
mit Python habe ich noch nie etwas zu tun gehabt.
Du gibst zwar für die zu komprimierende Datei den vollständigen Pfad an, nicht aber für zip. Konnte es sein, dass Python die Umgebungsvariablen nicht kennt?
Schreib doch mal z.B. /usr/bin/zip
In Tcl muss ich in bestimmten Konstruktionen den Befehl und die Parameter in Hochkomma setzen z.B. so os.system("zip -r packed.zip /zuZippen/" )
Ja, das war das Problem. Python wollte nicht raus aus seinem Verzeichnis, auch nicht mit den "cd" Befehlen.
os.chdir 'home/noname/Dokumente/...'
hat das Problem gelöst.
Google ist dein Freund: http://docs.python.org/2/library/zipfile.html