Wie ändere ich das Verzeichnis zurück in mein ursprüngliches Arbeitsverzeichnis mit Python?

7

Ich habe eine Funktion, die der folgenden ähnelt. Ich bin mir nicht sicher, wie ich das Modul os verwenden kann, um nach Abschluss der Ausführung des Jars zu meinem ursprünglichen Arbeitsverzeichnis zurückzukehren.

%Vor%

Hinweis: Ich denke, meine Code-Formatierung ist deaktiviert - nicht sicher warum. Ich entschuldige mich im Voraus

    
Amara 18.11.2008, 17:19
quelle

5 Antworten

15

Sie müssen nur die Zeile hinzufügen:

%Vor%

Nur eine Anmerkung das wurde auch in Ihrem anderen Frage .

    
grieve 18.11.2008, 17:24
quelle
12

Ein Kontextmanager ist ein sehr geeignetes Werkzeug für diesen Job:

%Vor%

... verwendet als:

%Vor%

... was etwas ergeben wird wie:

%Vor%

Dies ist tatsächlich besser für die eingebaute cd - -Shell, da es auch dafür sorgt, dass Verzeichnisse zurückversetzt werden, wenn ein Block aufgrund einer ausgelösten Ausnahme beendet wird.

Für Ihren speziellen Anwendungsfall wäre dies stattdessen:

%Vor%

Eine weitere zu berücksichtigende Option ist die Verwendung von subprocess.call() anstelle von os.system() , wodurch Sie ein Arbeitsverzeichnis angeben können, in dem der Befehl ausgeführt werden soll:

%Vor%

... das würde verhindern, dass Sie das Verzeichnis des Interpreters überhaupt ändern müssen.

    
Charles Duffy 23.06.2016 16:00
quelle
7

Der Hinweis, os.chdir(owd) zu verwenden, ist gut. Es wäre ratsam, den Code, der das geänderte Verzeichnis benötigt, in einen try:finally -Block (oder in Python 2.6 und höher, einen with: -Block) zu setzen. Das verringert das Risiko, dass Sie versehentlich return in den Code einfügen vor dem Wechsel zurück in das ursprüngliche Verzeichnis.

%Vor%     
Alex Coventry 18.11.2008 21:34
quelle
2

os.chdir (owd) sollte den Trick machen (wie Sie es bei der Umstellung auf testDir getan haben)

    
Nethanel 18.11.2008 17:25
quelle
1

Python unterscheidet zwischen Groß- und Kleinschreibung. Wenn Sie also den Pfad eingeben, vergewissern Sie sich, dass es dem Verzeichnis entspricht Sie möchten festlegen.

%Vor%     
eagle3ye 11.05.2011 11:05
quelle

Tags und Links