argparse如何存储所有添加的参数?有没有方法可以访问它们的名称和帮助字符串?

2024-03-29 11:47:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图为一个大型程序生成一些外部文档,这个程序有大量可选参数(这些参数经常被扩展/更改)。我很好奇是否有一种方法可以访问parser对象的参数,这样我就可以看到所有的名称、描述、帮助等。。为所有传递给它的东西。parse_args()函数删除所有附加信息,只返回键/值对。在

例如,如果我有以下代码:

import argparse

def main():
    parser = argparse.ArgumentParser(description='Description of your program')
    parser.add_argument('-f','--foo', help='Foo help string')
    parser.add_argument('-b','--bar', help='Bar help string')
    parser.add_argument('-z','--zar', help='Zar help string')
    args = parser.parse_args()

有什么方法可以得到解析器中所有参数的列表吗?一些类似于

^{pr2}$

如果我能得到这样的东西,那么标记一些漂亮的html文档就轻而易举了。在


Tags: 对象方法函数文档程序名称addparser
1条回答
网友
1楼 · 发布于 2024-03-29 11:47:47

在内部,ArgumentParser将这些存储在_actions属性中:

In [21]: parser._actions
Out[21]: 
[_HelpAction(option_strings=['-h', ' help'], dest='help', nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, help='show this help message and exit', metavar=None),
 _StoreAction(option_strings=['-f', ' foo'], dest='foo', nargs=None, const=None, default=None, type=None, choices=None, help='Foo help string', metavar=None),
 _StoreAction(option_strings=['-b', ' bar'], dest='bar', nargs=None, const=None, default=None, type=None, choices=None, help='Bar help string', metavar=None),
 _StoreAction(option_strings=['-z', ' zar'], dest='zar', nargs=None, const=None, default=None, type=None, choices=None, help='Zar help string', metavar=None)]

您还可以在_option_string_actions属性中找到它们的命令行选项:

^{pr2}$

相关问题 更多 >