gpt4 book ai didi

python - Argparse python,在帮助菜单中删除子解析器列表

转载 作者:IT老高 更新时间:2023-10-28 21:12:58 24 4
gpt4 key购买 nike

我正在使用 Argparse 编写一个命令行实用程序,并添加了一堆 sub_parsers(子命令)。在帮助菜单中,它们出现在名为“命令”的组下,我得到了所有可能选项的不错列表。然而,在此列表出现之前,所有相同的命令都会出现在大括号中的组标题下,如下所示:

Commands:
{foo, bar}

foo - foo does foo
bar - bar does bar

我想删除出现在大括号中的多余条目。它只出现在这个被 sub_parsers 填充的组中。

我处理这个问题的代码如下所示:(其中 parser 是 ArgumentParser() 实例)

subparsers = parser.add_subparsers(title="Commands")

foo = subparsers.add_parser("foo", help="- foo does foo")
bar = subparsers.add_parser("bar", help="- bar does bar")

我查看了我的命令操作组的属性和方法,似乎找不到任何可以为我解决这个问题的方法(至少从我能理解的情况来看)。我不确定是否有其他人处理过这个问题,我意识到这可能有点晦涩难懂。再说一次,我要做的就是找到删除出现在大括号中的多余命令列表的方法。

最佳答案

“{foo,bar}”部分是参数“metavar”。元变量是 argparse 引用用法和帮助字符串中的预期参数值的方式。 argparse 将子命令视为具有多个选项的参数,因此如果您不指定元变量,则默认值是花括号中的选项列表(子命令)。它让用户知道子命令的可能选项,但由于它们就在下面列出,它是多余的,如果你有很多子命令,那就很难看。

您可以轻松地用自己选择的元变量替换:

subparsers = parser.add_subparsers(title="Commands", metavar="<command>")

关于python - Argparse python,在帮助菜单中删除子解析器列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11070268/

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