我有以下代碼(使用Python 2.7):argparse可選子分析器(用於--version)
# shared command line options, like --version or --verbose
parser_shared = argparse.ArgumentParser(add_help=False)
parser_shared.add_argument('--version', action='store_true')
# the main parser, inherits from `parser_shared`
parser = argparse.ArgumentParser(description='main', parents=[parser_shared])
# several subcommands, which can't inherit from the main parser, since
# it would expect subcommands ad infinitum
subparsers = parser.add_subparsers('db', parents=[parser_shared])
...
args = parser.parse_args()
現在我想能夠例如調用這個程序與附加到正常程序或一些子命令--version
:
$ prog --version
0.1
$ prog db --version
0.1
基本上,我需要聲明可選subparsers。我知道這不是really supported,但有沒有任何解決方法或替代方法?
編輯:該錯誤消息我得到:
$ prog db --version
# works fine
$ prog --version
usage: ....
prog: error: too few arguments
請注意,我們自2009年起等待此基本功能。 – yac 2013-11-11 19:05:32