Frage

Gibt es eine Möglichkeit, das laufende Verzeichnis des Befehls in Python subprocess.Popen() angeben?

Zum Beispiel:

Popen('c:\mytool\tool.exe', workingdir='d:\test\local')

Mein Python-Skript wird in C:\programs\python befindet

Ist es möglich, C:\mytool\tool.exe im Verzeichnis D:\test\local laufen?

Wie kann ich das Arbeitsverzeichnis für einen Teilprozess?

War es hilfreich?

Lösung

subprocess.Popen href="http://docs.python.org/library/subprocess.html#using-the-subprocess-module" rel="noreferrer"> nimmt cwd Argument die festlegen Aktuelles Arbeitsverzeichnis; Sie wollen auch Ihre Schrägstriche ('d:\\test\\local'), oder verwenden Sie r'd:\test\local' zu entkommen, so dass die Schrägstriche nicht als Escape-Sequenzen von Python interpretiert werden. Die Art, wie Sie es geschrieben haben, wird der \t Teil zu einem Tab übersetzt werden .

Also, Ihre neue Zeile soll wie folgt aussehen:

subprocess.Popen(r'c:\mytool\tool.exe', cwd=r'd:\test\local')

Um die Python-Skript Pfad als cwd, import os zu verwenden und definiert cwd mit diesem:

os.path.dirname(os.path.realpath(__file__)) 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top