subprocess.call(["/home/blah/trunk/blah/run.sh", "/tmp/ad_xml", "/tmp/video_xml"])
我这样做。但是,在我的run.sh中,我有“相对”路径。 所以,我必须“cd”到该目录,然后运行shell脚本。我该怎么做?
答案 0 :(得分:12)
使用cwd
subprocess.call()
参数
来自此处的文档:http://docs.python.org/library/subprocess.html
如果
cwd
不是无,则为孩子的 当前目录将更改为cwd
在执行之前。注意 此目录不在考虑时 搜索可执行文件,所以你不能 指定程序相对于的路径cwd
。
示例:
subprocess.call(["/home/blah/trunk/blah/run.sh", "/tmp/ad_xml", "/tmp/video_xml"], cwd='/tmp')
答案 1 :(得分:1)
好吧,你可以使用subprocess.Popen与Shell = True和cwd =“你想要的工作目录”
编辑:看来调用具有相同的参数,所以只设置一个cwd参数就可以了:
subprocess.call(["/home/blah/trunk/blah/run.sh", "/tmp/ad_xml", "/tmp/video_xml"], cwd="PATH")
答案 2 :(得分:1)
您可以提供如下工作目录:
subprocess.call([“/ home / blah / trunk / blah / run.sh”,“/ tmp / ad_xml”,“/ tmp / video_xml”],cwd =“/ home / blah / trunk / blah” )
答案 3 :(得分:0)
os.chdir(path)