2016-01-06 36 views
0

有没有一种方法可以列出或生成所有可能的有效命令组合,这些命令可以为使用argparse定义的解析器执行? 如果argparse不可能,那么有没有人知道任何具有此功能的其他解析器?Python argparse列出了定义的解析器的所有可能的命令

E.g.如果我有定义的解析器:

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 
+0

什么是你正在寻找什么具体的例子? – disflux

+0

你能举一个例子吗? – jbergantine

回答

0

与您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信息创建的。所以从理论上讲,人们可以编写一个函数来获取相同的信息并生成像我一样的行。但是,不,​​中没有这样的功能。据我所知,不在任何Python标准的解析器包中。

为什么你需要这个显示?

+0

感谢您的回复,我只是需要它来查看所有可能的命令的所有输出,我想也许有一个内置的方法,允许您列出所有的命令。但是你是对的,我可以轻松地创建一个自己做的功能:)。 – Spektor