如何在Python中运行bash脚本,但就好像它从另一个目录运行?

TIM*_*MEX 5 python unix linux bash shell

subprocess.call(["/home/blah/trunk/blah/run.sh", "/tmp/ad_xml", "/tmp/video_xml"])
Run Code Online (Sandbox Code Playgroud)

我这样做 但是,在我的run.sh中,我有"相对"路径.所以,我必须"cd"到该目录,然后运行shell脚本.我怎么做?

pay*_*yne 12

使用cwd参数来subprocess.call()

来自这里的文档:http: //docs.python.org/library/subprocess.html

如果cwd不是None,则子项的当前目录将在cwd执行之前更改为 .请注意,在搜索可执行文件时不考虑此目录,因此您无法指定程序相对于的路径 cwd.

例:

subprocess.call(["/home/blah/trunk/blah/run.sh", "/tmp/ad_xml", "/tmp/video_xml"], cwd='/tmp')
Run Code Online (Sandbox Code Playgroud)