用Python运行程序';s子流程模块,带有来自终端的所需文件

用Python运行程序';s子流程模块,带有来自终端的所需文件,python,subprocess,Python,Subprocess,在Python的子流程模块中运行一个程序,但使用来自终端的文件是否可行 因此,我想在Python中运行以下程序: myProgram -a myArg 但是,假设上面的程序需要当前目录中的文件myFile,并且不将所需文件作为参数。因此,如果您在有myFile的目录中运行上述程序,程序将成功处理。但是,如果您在没有myFile的目录中运行它,则执行失败 当我试图从Python的subprocess.Popen()中执行程序时,当shell=True时,程序无法工作,并且失败的原因似乎是程序在P

在Python的子流程模块中运行一个程序,但使用来自终端的文件是否可行

因此,我想在Python中运行以下程序:

myProgram -a myArg
但是,假设上面的程序需要当前目录中的文件
myFile
,并且不将所需文件作为参数。因此,如果您在有
myFile
的目录中运行上述程序,程序将成功处理。但是,如果您在没有
myFile
的目录中运行它,则执行失败

当我试图从Python的
subprocess.Popen()
中执行程序时,当
shell=True
时,程序无法工作,并且失败的原因似乎是程序在Python中执行时无法读取
myFile

那么,有没有办法在Python中成功运行它呢

subprocess.Popen('myProgram -a myArg', cwd='/folder/with_myFile/')

类似的问题:

我也不知道为什么我必须指定目录-我在脚本应该在的地方运行脚本…我不确定,你是说
cwd
不适合你吗?我是否指定
cwd
无关紧要,因为我所有的Python程序都是“subprocessed”程序,和
myFile
位于当前目录中<只有在执行“subprocessed”程序之前更改目录时,才必须指定code>cwd,对吗?