这是一个解析器,该解析器处理重复的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
和分别定义参数如何Metavar=('url','name','other')
?
元组Metavar
也可以与nargs='+'
和nargs='*'
;一起使用。这两个字符串用作[-u A [B ...]]
或 [-u [A [B ...]]]
。