【发布时间】:2018-12-12 15:37:47
【问题描述】:
似乎这个问题以前经常被问到,但我还是找不到正确的答案。所以又来了……
示例代码:一个可选参数,参数转换为字典。
import argparse
epilog = '''usage example:'''
parser = argparse.ArgumentParser(description="add watchit hosts", epilog=epilog)
parser.add_argument('--add', nargs='*', default="-1", metavar="key 'value'")
args = vars(parser.parse_args())
print args
print args['name']
python argparse_test.py --add name 'aixbuildhost' 吐出以下内容:
{'add': ['name', 'aixbuildhost']}
Traceback (most recent call last):
File "argparse_test.py", line 9, in <module>
print args['name']
KeyError: 'name'
所以最大的问题是,我如何获得“名字”?
【问题讨论】:
-
使用
args['add'][1] -
在学习
argparse或使用它进行几乎任何调试时,最好先查看args而无需进一步处理print(args)。这将向您显示值及其名称。