有没有办法在Python的subprocess.Popen()
中指定命令的运行目录?
例如:
Popen('c:\mytool\tool.exe', workingdir='d:\test\local')
我的 Python 脚本位于 C:\programs\python
是否可以在D:\test\local
目录下运行C:\mytool\tool.exe
?
如何设置子进程的工作目录?
最佳答案
subprocess.Popen
takes a cwd
argument设置当前工作目录;您还需要转义反斜杠 ('d:\\test\\local'
),或使用 r'd:\test\local'
以便Python 不会将反斜杠解释为转义序列。按照您编写的方式,\t
部分将被转换为 tab。
所以,你的新行应该是这样的:
subprocess.Popen(r'c:\mytool\tool.exe', cwd=r'd:\test\local')
要将 Python 脚本路径用作 cwd,import os
并使用以下命令定义 cwd:
os.path.dirname(os.path.realpath(__file__))
https://stackoverflow.com/questions/1685157/