python - 将 pydoc 的描述显示为 argparse 的一部分 '--help'

标签 python argparse pydoc

我在脚本中使用 argparse.ArgumentParser(),我想将脚本的 pydoc 描述显示为 argparse 的“--help”选项的一部分。

一个可能的解决方案是使用 ArgumentParser 的 formatter_classdescription 属性来配置显示的帮助。但在这种情况下,我们需要在内部使用“pydoc”命令来获取描述。

我们是否有其他一些方法(可能是优雅的)来做到这一点?

最佳答案

您可以从 __doc__ 全局检索脚本的文档字符串。要将其添加到脚本的帮助中,您可以设置解析器的 description 参数。

"""My python script

Script to process a file
"""

p = argparse.ArgumentParser(description=__doc__,
                            formatter_class=argparse.RawDescriptionHelpFormatter)
p.add_argument('foo', help="Name of file to process")
p.parse_args()

然后帮助看起来像:

$ python tmp.py --help
usage: tmp.py [-h] foo

My python script

Script to process a file

positional arguments:
  foo         Name of file to process

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

您可以使用 epilog 关键字参数而不是 description 将文档字符串移动到帮助的末尾,而不是紧跟在用法字符串之后。

关于python - 将 pydoc 的描述显示为 argparse 的一部分 '--help',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18106327/

相关文章:

Python:TypeError: 'builtin_function_or_method' 类型的参数不可迭代

python - tia bbg python - 覆盖 "#N/A Field Not Applicable"

python - Argparse 无法识别和错误处理

python - pydoc可以用来生成联机帮助页吗?

python - 使用结果的 os.listdir 和 os.stat 时出现 WindowsError

python - 使用 pip 安装 face_recognition 模块时出错

python - 在 argparse 中自定义组间帮助

python - 避免重复记录脚本和函数

python-3.x - 如何使用 pydoc 递归生成整个项目的文档?

python - 'pydoc -w EXPRESSIONS' 不起作用,但 'pydoc EXPRESSIONS' 起作用。为什么? (所有帮助主题均大写)