将 arg 传递给 subprocess.call

qeb*_*182 0 python subprocess exec call sys

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

里面run.py我有以下内容:

script1 = str(sys.path[0]) + "\\script1.py"
subprocess.call(["Python", script1])
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

end*_*and 5

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

所以:

subprocess.call(["Python", script1, 'arg1', 'arg2'])
Run Code Online (Sandbox Code Playgroud)

对于subprocess.call,其列表的所有部分都是参数。您只是碰巧指定了“Python”和 script1,但对于子进程来说,两者都只是其他参数。

关于子流程的文档还有很多阅读内容,我建议您查看一下。