从另一个调用Python脚本并将List(sys.argv)作为参数传递

时间:2013-10-09 22:33:09

标签: python execute

test1.py是通过传递已传递给test1.py的相同参数列表来调用另一个脚本test2.py的主脚本。我已经完成了以下操作,但它将sys.argv列表作为字符串读取并解析为多个参数,并且还包含不必要的[和,

test1.py
import os
import sys

argList=sys.argv[1:]

os.system('python another/location/test2.py %s'%(argList))

test2.py

import sys
print(sys.argv[1:])

Call test1.py
python test1.py -a -b -c
output: ['[-a,' ,'-b,', '-c]' ]

请发布是否有更好的opti

2 个答案:

答案 0 :(得分:1)

使用

os.system('python another/location/test2.py %s' % ' '.join(argList))

如果参数本身不包含空格。

第二个程序将输出

['-a', '-b', '-c']

如果你的参数可以包含空格,最好引用它们。使用' '.join("'%s'" % arg.replace("'", "\\'") for arg in ArgList)

答案 1 :(得分:0)

如果您需要在调用test2.py之后立即退出test1.py

import subprocess
subprocess.Popen( ('python', 'another/location/test2.py') + tuple( sys.argv[1:]) )