1

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]' ]

如果有更好的选择,请发布

4

2 回答 2

1

采用

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

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

第二个程序将输出

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

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

于 2013-10-09T22:38:45.153 回答
0

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

import subprocess
subprocess.Popen( ('python', 'another/location/test2.py') + tuple( sys.argv[1:]) )
于 2019-12-04T15:15:05.970 回答