Python argparse 列出已定义解析器的所有可能命令
Posted
技术标签:
【中文标题】Python argparse 列出已定义解析器的所有可能命令【英文标题】:Python argparse list all possible commands for a defined parser 【发布时间】:2016-04-10 17:26:31 【问题描述】:有没有办法列出或生成可以为使用 argparse 定义的解析器执行的有效命令的所有可能组合? 如果使用 argparse 无法实现,有没有人知道任何其他具有此功能的解析器?
例如如果我定义了解析器:
parser = argparse.ArgumentParser(prog='myProg', usage='%(prog)s [options]')
parser.add_argument('--foo1', help='foo help')
parser.add_argument('--foo2', help='foo help')
是否有一个命令/包可以使用这个解析器并生成所有可能的命令组合:
myProg --foo1 test --foo2 test
myProg --foo1 test
myProg --foo2 test
【问题讨论】:
您正在寻找的具体示例是什么? 你能举个例子吗? 【参考方案1】:有了你的parser
,我明白了:
In [34]: parser.print_usage()
usage: myProg [options]
那是因为您指定了:usage='%(prog)s [options]'
。删除给我:
In [38]: parser.print_usage()
usage: myProg [-h] [--foo1 FOO1] [--foo2 FOO2]
根据该行中的信息,我可以列出可能的输入
myProg -h
myProg --foo1 FOO1
myProg --foo2 FOO2
etc
该用法行是根据parser
中的信息创建的。所以理论上可以编写一个函数来获取相同的信息并像我一样生成行。但是不,argparse
中没有任何此类功能。据我所知,Python 标准的任何解析器包中都没有。
为什么需要这个显示器?
【讨论】:
感谢您的回复,我只是需要它来查看所有可能命令的所有输出,我想也许有一个内置方法可以让您列出所有命令。但你是对的,我可以很容易地创建一个自己做的函数:)。【参考方案2】:parser.print_help()
python args parse 显示可用命令
python 解析参数手册页
自定义 arg 解析帮助显示选项
parser.add_argument('-h', '--help', action='store_true')
if arguments.help is True:
print(parser.print_help())
sys.exit()
【讨论】:
以上是关于Python argparse 列出已定义解析器的所有可能命令的主要内容,如果未能解决你的问题,请参考以下文章