如何从ArgumentParser对象中获取可用标志



我正在为这个python项目使用argparse模块。在调用parse_args()之前,我希望从ArgumentParser对象中获取可用的标志。有人有什么想法吗?

这是从add_argument()的源代码中得到的:

>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('-v', '--verbosity', help='more debug info', action='store_true')
_StoreTrueAction(option_strings=['-v', '--verbosity'], dest='verbosity', nargs=0, const=True, default=False, type=None, choices=None, help='more debug info', metavar=None)
>>> parser._option_string_actions.keys()
['-v', '-h', '--verbosity', '--help']
>>> 

前几天我试图解决这个问题,但除了@vvoody所做的以下内容外,我从未得到满意的答案。

In [117]: map(lambda x : x.dest,parser._actions)
Out[117]: ['help', 'verbosity']

好处是它删除了所有别名-v==--verbosity等。但是如果将dest更改为--verbosity,例如dest='loud',则它将返回loud,这可能是问题,也可能不是问题。

对于argsparse来说,开箱即用似乎是一件显而易见的事情。

相关内容

  • 没有找到相关文章

最新更新