Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python argparse列出定义的解析器的所有可能命令_Python_Argparse_Command Line Arguments - Fatal编程技术网

Python argparse列出定义的解析器的所有可能命令

Python argparse列出定义的解析器的所有可能命令,python,argparse,command-line-arguments,Python,Argparse,Command Line Arguments,有没有一种方法可以列出或生成可以为使用argparse定义的解析器执行的所有可能的有效命令组合? 如果argparse无法实现此功能,是否有人知道其他具有此功能的解析器 例如,如果我定义了解析器: parser = argparse.ArgumentParser(prog='myProg', usage='%(prog)s [options]') parser.add_argument('--foo1', help='foo help') parser.add_argument('--foo2'

有没有一种方法可以列出或生成可以为使用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

使用您的
解析器
我得到:

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
该使用行是根据
解析器中的信息创建的。因此,理论上,我们可以编写一个函数,它接受相同的信息并生成像我这样的行。但是没有,在
argparse
中没有这样的函数。据我所知,Python的标准解析器包中都没有


你为什么需要这个显示器

你要找的具体例子是什么?你能发布一个例子吗?谢谢你的回复,我只是需要它来查看所有可能命令的所有输出,我想可能有一个内置的方法可以让你列出所有命令。但是你是对的,我可以很容易地创建一个函数来自己实现:)。