Python 将额外的文本附加到"--“帮助”;在argparse中

Python 将额外的文本附加到"--“帮助”;在argparse中,python,argparse,Python,Argparse,当你跑的时候 foo.py-h 或 foo.py——救命啊 您将收到一条关于如何使用foo.py以及需要哪些参数的“帮助”消息。有什么方法可以附加到此邮件中吗?例如,打印uuu doc uuu?当然,argparse为您提供了大量的定制可能性。例如,要“附加”到帮助(在完成帮助消息后打印更多),请使用epilog命名参数 parser = argparse.ArgumentParser(epilog="That's all she wrote", ...) 其中,…代表“您希望传递给解析器构造

当你跑的时候

foo.py-h

foo.py——救命啊


您将收到一条关于如何使用foo.py以及需要哪些参数的“帮助”消息。有什么方法可以附加到此邮件中吗?例如,打印uuu doc uuu?

当然,
argparse
为您提供了大量的定制可能性。例如,要“附加”到帮助(在完成帮助消息后打印更多),请使用
epilog
命名参数

parser = argparse.ArgumentParser(epilog="That's all she wrote", ...)
其中,
代表“您希望传递给解析器构造函数的任何其他命名参数”,相关消息将打印在关于参数的帮助之后的
--help


有关
argparse
(作为参考编写,但有很多示例)的几千字,以及更多的几千字(作为教程编写)。也许这些文档中有一半是关于如何微调
--帮助
或错误案例的消息

帮助格式化函数argparse.ArgumentParser.format\u 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\u class
    constructor参数),以自定义如何将这些字符串转换为帮助文本
    • argparse
      模块

什么是
foo.py
?你写了什么?好吧,foo.py只是一个例子。如果
foo.py
是空的呢?然后
foo.py-h
不打印任何内容。为了得到一个有意义的答案,你必须告诉我们
foo.py
包含的内容。我有一些文档(\u doc\u)需要附加或开始我的帮助消息。太好了!感谢您的帮助,我使用parser=argparse.ArgumentParser(description=\uuuu doc\uuuuu,formatter\u class=argparse.RawTextHelpFormatter)使其不跳过“\n”