这是一个解析器,它处理重复的 2 个可选参数 - 名称在metavar
:
parser=argparse.ArgumentParser()
parser.add_argument('-i','--input',action='append',nargs=2,
metavar=('url','name'),help='help:')
In [295]: parser.print_help()
usage: ipython2.7 [-h] [-i url name]
optional arguments:
-h, --help show this help message and exit
-i url name, --input url name
help:
In [296]: parser.parse_args('-i one two -i three four'.split())
Out[296]: Namespace(input=[['one', 'two'], ['three', 'four']])
这不处理2 or 3 argument
案例(尽管我前段时间为Python错误/问题编写了一个补丁来处理这样的范围)。
单独的参数定义如何nargs=3
and metavar=('url','name','other')
?
元组metavar
也可以与nargs='+'
and nargs='*'
; 2 个字符串用作[-u A [B ...]]
or [-u [A [B ...]]]
.