我想建立一个命令行工具嵌套解析器。 我目前使用add_subparsers
,但似乎对于一个特定的情况下,没有足够强大。 我不能同一命名参数添加到这两个父解析器和子分析器的命令。 请看下面的例子:
import argparse
argparser = argparse.ArgumentParser()
argparser.add_argument("-H", action="store_true")
subparser = argparser.add_subparsers(dest='sp')
cmd = subparser.add_parser("cmd")
cmd.add_argument("-H")
print argparser.parse_args()
然后,运行
py test.py -H cmd -H 5
在命令行上给出
Namespace(H='5', sp='cmd')
我希望,而不是有东西也许像
Namespace(H=True, sp={'cmd':Namespace(h='5')})
有没有得到这样的功能,原生的方式,或者说我必须去通过建立一个自定义argparser的麻烦? 谢谢!