将arg传递给subprocess.call

时间:2016-09-28 12:49:27

标签: python subprocess exec call sys

我有一系列脚本,由另一个run.py以明确的顺序调用。

run.py内我有以下内容:

script1 = str(sys.path[0]) + "\\script1.py"
subprocess.call(["Python", script1])

等3个脚本。如果我想以这种格式将两个参数传递给脚本1,那么诸如显式运行设置之类的参数将在脚本执行时使用,我该怎么做?我有一种感觉它会依赖于script1中的sys.argv,但是无论我传递了什么索引位置,都会出现关于参数超出范围的错误。

谢谢!

1 个答案:

答案 0 :(得分:3)

子进程获取一个参数列表,然后将其转换为它执行的命令。

所以:

subprocess.call(["Python", script1, 'arg1', 'arg2'])

subprocess.call所有,其列表中的部分都是参数。您恰好正在指定“Python”和script1,但是对于子进程,两者都只是其他参数。

documentation for subprocess上有更多阅读材料,我建议您查看。