我如何得到optparse列表所有可能的参数和选项



我正在使用Python 2.6.2(不幸的是不能升级到2.7,否则我会使用argparse)。我怎么能得到optparse返回已通过'add_option'添加的选项列表?

下面是一些示例代码:

from optparse import OptionParser
parser = OptionParser()
parser.add_option('--one')
parser.add_option('--two')
(opts,args) = parser.parser_args()
optlist = parser.funcToGetListOfOptions()
print optlist
['one', 'two']

我已经查看了optparse源代码,可以通过访问内部属性来找出它,但这似乎不太合适。正确的做法是什么?

谢谢!

>>> parser._get_all_options()[1:]
[<Option at 0xb7d185ec: --one>, <Option at 0xb7d1866c: --two>]
>>> [x.get_opt_string() for x in parser._get_all_options()[1:]]
['--one', '--two']
>>> [x.dest for x in parser._get_all_options()[1:]]
['one', 'two']

我从转换字符串表示的字典到字典得到了一个很好的提示?,使用我以前从未使用过的ast.literal_eval。有了它,并直接从(options, args) = parser.parse_args的选项中调用str,您将很快得到您想要的。

>>> import ast
>>> ast.literal_eval(options.__str__())
{'one': None, 'two': None}
>>> ast.literal_eval(options.__str__()).keys()
['one', 'two']

这比使用私有方法可移植得多,而且你可以使用一个全新的模块。

相关内容

  • 没有找到相关文章

最新更新