我使用subprocess.call像下方的外壳脚本:如何运行置于不同的文件夹中从蟒
subprocess.call([“须藤./order_fc_prioritizer/run.sh”])
但它说没有这样的文件或目录
我使用subprocess.call像下方的外壳脚本:如何运行置于不同的文件夹中从蟒
subprocess.call([“须藤./order_fc_prioritizer/run.sh”])
但它说没有这样的文件或目录
您可以使用绝对,而不是相对,文件路径到您的脚本。
传递一个列表以call()
与命令和参数分成单独的列表元素:
subprocess.call(['sudo', './order_fc_prioritizer/run.sh'])
参见文档,部分Frequently Used Arguments。
args是所有调用所必需的,并且应该是字符串或程序参数的序列 。提供参数序列通常首选为 ,因为它允许模块处理任何所需的参数转义和引用(例如允许文件名称中的空格) 。如果传递单个字符串,则任何一个shell都必须为True(请参见下面的 ),否则字符串必须简单地命名要执行的程序 而不指定任何参数。
你也可以使用shlex.split()
创建参数列表:
import shlex
subprocess.call(shlex.split('sudo ./order_fc_prioritizer/run.sh'))
您可以考虑使用subprocess.Popen()
基本上subprocess.call()
仅仅是一个辅助函数:
proc = subprocess.Popen(cmd, cwd=PATH)
proc.wait()
但Popen()有一个关键字参数cwd,这是工作总监y在哪里执行命令(产生进程)。
你能告诉我们你的目录结构是什么样子吗? – 2015-03-13 12:20:32