在 argparse 中将额外的文本附加到“--help”
Append extra text to "--help" in argparse
当你运行
foo.py -h
或
foo.py --help,
您将收到一条 "help" 消息,说明如何使用 foo.py 以及它需要哪些参数。有什么方法可以附加到此消息吗?例如打印 __doc__?
当然,argparse
为您提供了 很多 的定制可能性。要 "append" 帮助(在帮助消息完成后打印更多信息),例如,使用 epilog
命名参数。
parser = argparse.ArgumentParser(epilog="That's all she wrote", ...)
其中 ...
代表 "whatever other named arguments you want to pass to the parser constructor",相关消息将在有关参数的帮助后打印在 --help
上。
请参阅 https://docs.python.org/3/library/argparse.html for a few thousand words about argparse
(written as a reference but with lots of examples) and https://docs.python.org/3/howto/argparse.html#id1 以获取更多内容(作为教程编写)。也许这些文档中有一半是关于如何针对 --help
或错误情况微调消息的!-)
格式化帮助函数 argparse.ArgumentParser.format_help()
如下所示:
def format_help(self):
formatter = self._get_formatter() #by default, an instance of argparse.HelpFormatter
# usage
formatter.add_usage(self.usage, self._actions,
self._mutually_exclusive_groups)
# description
formatter.add_text(self.description)
# positionals, optionals and user-defined groups
for action_group in self._action_groups:
formatter.start_section(action_group.title)
formatter.add_text(action_group.description)
formatter.add_arguments(action_group._group_actions)
formatter.end_section()
# epilog
formatter.add_text(self.epilog)
# determine help from format above
return formatter.format_help()
所以,您可以
- 自定义使用的字符串(它们可以作为构造函数参数传递,您可能对
epilog
感兴趣),或
- 替换默认值
HelpFormatter
(formatter_class
构造函数参数)以自定义如何将这些字符串转换为帮助文本
argparse
模块 bundles 3 alternative classes。
当你运行
foo.py -h
或
foo.py --help,
您将收到一条 "help" 消息,说明如何使用 foo.py 以及它需要哪些参数。有什么方法可以附加到此消息吗?例如打印 __doc__?
当然,argparse
为您提供了 很多 的定制可能性。要 "append" 帮助(在帮助消息完成后打印更多信息),例如,使用 epilog
命名参数。
parser = argparse.ArgumentParser(epilog="That's all she wrote", ...)
其中 ...
代表 "whatever other named arguments you want to pass to the parser constructor",相关消息将在有关参数的帮助后打印在 --help
上。
请参阅 https://docs.python.org/3/library/argparse.html for a few thousand words about argparse
(written as a reference but with lots of examples) and https://docs.python.org/3/howto/argparse.html#id1 以获取更多内容(作为教程编写)。也许这些文档中有一半是关于如何针对 --help
或错误情况微调消息的!-)
格式化帮助函数 argparse.ArgumentParser.format_help()
如下所示:
def format_help(self):
formatter = self._get_formatter() #by default, an instance of argparse.HelpFormatter
# usage
formatter.add_usage(self.usage, self._actions,
self._mutually_exclusive_groups)
# description
formatter.add_text(self.description)
# positionals, optionals and user-defined groups
for action_group in self._action_groups:
formatter.start_section(action_group.title)
formatter.add_text(action_group.description)
formatter.add_arguments(action_group._group_actions)
formatter.end_section()
# epilog
formatter.add_text(self.epilog)
# determine help from format above
return formatter.format_help()
所以,您可以
- 自定义使用的字符串(它们可以作为构造函数参数传递,您可能对
epilog
感兴趣),或 - 替换默认值
HelpFormatter
(formatter_class
构造函数参数)以自定义如何将这些字符串转换为帮助文本argparse
模块 bundles 3 alternative classes。