2016-09-28 57 views
0

我有一系列脚本按另一个run.py以明确顺序调用。将arg传递给subprocess.call

里面run.py我有以下几点:

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

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

谢谢!

回答

3

子过程需要一个参数列表,然后它变成它执行的命令。

所以:

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

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

关于documentation for subprocess有更多的阅读,我会推荐看看。

+0

那么在'script1.py'中,我会将这些参数用作sys.argv [2]和sys.argv [3]? – Alt182

+0

@ Alt182作为命令'python \\ script1.py arg1 arg2.'有效地结束。您需要相应地处理它们。 – enderland