Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.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 如何获取optpass列出所有可能的参数和选项?_Python_Argparse_Optparse - Fatal编程技术网

Python 如何获取optpass列出所有可能的参数和选项?

Python 如何获取optpass列出所有可能的参数和选项?,python,argparse,optparse,Python,Argparse,Optparse,我使用的是Python2.6.2(不幸的是,我无法升级到2.7,或者我会使用argparse)。如何让optpasse返回通过“添加选项”添加的选项列表 下面是一些示例代码: from optparse import OptionParser parser = OptionParser() parser.add_option('--one') parser.add_option('--two') (opts,args) = parser.parser_args() optlist = pars

我使用的是Python2.6.2(不幸的是,我无法升级到2.7,或者我会使用argparse)。如何让optpasse返回通过“添加选项”添加的选项列表

下面是一些示例代码:

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']
我查看了OptPass源代码,可以通过访问内部属性找到它,但这似乎不太符合犹太教义。正确的方法是什么

谢谢

>>解析器。_获取所有选项()[1:]
>>> 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']
[, ] >>>[x.在解析器中为x获取\u opt\u字符串()。\u获取\u所有\u选项()[1:] ['--1','--2'] >>>[x.dest用于解析器中的x.\u获取\u所有\u选项()[1:] [‘一’、‘二’]
我从ast.literal\u 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']

这比使用私有方法更具可移植性,您可以使用一个全新的模块。

谢谢,F.J.我想既然optparse不再被开发,访问命名为私有的属性就足够安全了。