Wie kann ich angeben das Arbeitsverzeichnis für popen
Gibt es einen Weg zu geben Sie Sie das Startverzeichnis der Befehl in Python subprocess.Popen()
?
Beispiel:
Popen('c:\mytool\tool.exe', workingdir='d:\test\local')
Mein Python-Skript befindet sich in C:\programs\python
Ist es möglich zu laufen C:\mytool\tool.exe
im Verzeichnis D:\test\local
?
Wie setze ich das Arbeitsverzeichnis für ein sub-Prozess?
- beachten Sie, dass Unterprozess.nennen, ist nur ein dünner wrapper über Teilprozess.Popen, und diese wrapper-befasst sich mit allen Argumenten des Popen, als auch, zumindest soweit ich mich erinnere 🙂 In einfachen Fällen, bleiben Sie besser bei Teilprozess.rufen
Du musst angemeldet sein, um einen Kommentar abzugeben.
subprocess.Popen
nimmt eincwd
- argument , um das Aktuelle Arbeitsverzeichnis, werden Sie auch wollen, zu entkommen, Ihre backslashes ('d:\\test\\local'
), oder verwenden Sier'd:\test\local'
so dass die backslashes nicht so interpretiert escape-Sequenzen, die von Python. Die Art und Weise haben Sie es geschrieben, die\t
Teil übersetzt wird, um ein tab.So, Ihr neue Zeile sollte wie folgt Aussehen:
Verwenden Sie Ihre Python-Skript-Pfad cwd,
import os
definieren und cwd mit diesem:shell=False
können Sie nicht verwenden Sie ein shell-builtin, wiecd
: also, versuchen Sie diese unter Linux mit shell in beide Richtungen:subprocess.Popen("cd /tmp; pwd")
subprocess.call(["C:/Users/Bob/Some.exe"], cwd="C:/Users/Jane/")
und es funktioniert gutget_script_dir()
statt