gpt4 book ai didi

python - argparse 可选子解析器(用于 --version)

转载 作者:IT老高 更新时间:2023-10-28 20:51:53 24 4
gpt4 key购买 nike

我有以下代码(使用 Python 2.7):

# 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

基本上,我需要声明可选的子解析器。我知道这不是 really supported ,但有任何解决方法或替代方案吗?

编辑:我收到的错误消息:

$ prog db --version
# works fine

$ prog --version
usage: ....
prog: error: too few arguments

最佳答案

根据文档,带有 action='version'(而不是 action='store_true')的 --version 会自动打印版本号:

parser.add_argument('--version', action='version', version='%(prog)s 2.0')

关于python - argparse 可选子解析器(用于 --version),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8521612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com