2013-10-07 108 views
1

时传递参数我打电话这样的Python:运行一个外部命令

call(["./myProgram", myArgs]) 

如何传递的参数列表的外部程序? myProgram需要3个参数,这样

myProgram param1 param2 param3 

specifiying参数seperately像下面的工作

call(["./myProgram", param1 ,param2, param3]) 

,但我怎么可以使用的参数列表/阵列,像

myArgs=[param1,param2,param3] 

我得到此

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/usr/lib/python2.7/subprocess.py", line 493, in call 
return Popen(*popenargs, **kwargs).wait() 
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__errread, errwrite) 
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child 
raise child_exception TypeError: execv() arg 2 must contain only strings 

回答

3

只是连接列表:

call(['./myProgram'] + myArgs) 

第一个参数必须是字符串列表;只需建立该列表从两个单独的列表。

相关问题