我正在编写一段脚本,该脚本将把argparse参数传递给另一个Python脚本。
第一个脚本:t.py
import argparse
import subprocess
import os
commandLineArgumentParser = argparse.ArgumentParser()
commandLineArgumentParser.add_argument("-fname", "--fname", help="first name")
commandLineArgumentParser.add_argument("-lname","--lname", help="last name")
commandLineArguments = commandLineArgumentParser.parse_args()
fname = commandLineArguments.fname
lname = commandLineArguments.lname
print "%s\n%s" %(fname,lname)
os.system("python test1.py")
test1.py的代码如下
import argparse
import os
print "test abc"
我希望您能把 lname 和 fname 的值传递给 test1.py。有没有办法实现这个功能呢?
如果我运行以上代码,
python t.py -fname ms lname = dhoni
那么输出就是
ms
dhoni
test abc
但我希望输出结果如下所示:
ms
dhoni
ms
dhoni
commandLineArguments
的值时,输出结果为Namespace(fname='ms', lname='dhoni')
。有没有办法将其更改为--lname=ms -fname=dhoni
或-lname=ms -fname=dhoni
? - Arijit Pandapython t.py -fname = ms
,那么我只想获取-fname=ms
部分。这样我就可以轻松地将参数传递给test1.py
,方式相同... - Arijit Pandat.py
需要解析参数,还是只需将它们不变地传递给test1.py
?有时一个模块会解析一些参数,并将其余部分(它无法处理的)传递给另一个模块。 - hpaulj