Python Argparse - 如何将文本添加到默认帮助消息中?

时间:2018-04-25 11:35:49

标签: python python-3.x python-2.7 argparse

我正在使用python的argparse来处理参数的解析。 我得到一个如下结构的默认帮助消息:

usage: ProgramName [-h] ...

Description

positional arguments:
  ...

optional arguments:
  -h, --help            show this help message and exit
  ...

我想要的是在此消息中添加一个全新的部分,例如:

usage: ProgramName [-h] ...

Description

positional arguments:
  ...

optional arguments:
  -h, --help            show this help message and exit
  ...

additional information:
  This will show additional information relevant to the user.
  ....

有没有办法实现这种行为? 首选python 2.7和3.x支持的解决方案。

编辑: 我还想提供一个解决方案,在帮助信息的底部添加新的部分/部分。

2 个答案:

答案 0 :(得分:12)

您可以使用epilog完成此操作。 以下是一个例子:

usage: ProgramName [-h] [--foo [FOO]] bar [bar ...]

positional arguments:
  bar          bar help

optional arguments:
  -h, --help   show this help message and exit
  --foo [FOO]  foo help

additional information:
    I have indented it
    exactly the way
    I want it

结果:

            DateTimeFormatter format = new DateTimeFormatterBuilder()
                .parseCaseInsensitive()
                .parseLenient()
                .appendPattern("HH:mm EEEE")
                .toFormatter(); 

答案 1 :(得分:6)

您可以通过多种方式add a description执行命令。 建议的方法是在源代码文件的顶部添加模块文档,如下所示:

""" This is the description, it will be accessible within the variable
    __doc__
"""

然后:

parser = argparse.ArgumentParser(description=__doc__)

要在参数说明下添加文本,请使用epilog,如以下示例所示:

>>> parser = argparse.ArgumentParser(description='A foo that bars',  
                                     epilog="And that's how you'd foo a bar")
>>> parser.print_help() 

usage: argparse.py [-h]

A foo that bars

optional arguments:  -h, --help  show this help message and exit

And that's how you'd foo a bar

有关详细信息,请参阅文档(上面链接)。