如何获取argparse的帮助内容,而不是打印到控制台

Posted

技术标签:

【中文标题】如何获取argparse的帮助内容,而不是打印到控制台【英文标题】:How to get the content of help of argparse, and not to print to console 【发布时间】:2021-12-28 09:50:58 【问题描述】:

我正在使用电报机器人,而不是控制台,需要获取帮助内容以发送给用户,而不是打印到控制台,像这样

parser = argparse.ArgumentParser()
parser.add_argument("-a", "--aaa", help="help for aaa")
cmd=["-a", "seta"]
args = parser.parse_args(cmd)
helpstring = parser.print_help() # get the help content for furthur process
telegrambot.send(helpstring)

【问题讨论】:

【参考方案1】:

你可以使用parser.format_help方法:

>>> parser.format_help()
'usage: [-h] [-a AAA]\n\noptional arguments:\n  -h, --help         show this help message and exit\n  -a AAA, --aaa AAA  help for aaa\n'
>>> print(parser.format_help())
usage: [-h] [-a AAA]

optional arguments:
  -h, --help         show this help message and exit
  -a AAA, --aaa AAA  help for aaa

【讨论】:

成功了,非常感谢

以上是关于如何获取argparse的帮助内容,而不是打印到控制台的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 2 个位置参数在 argparse 上打印帮助界面?

python::argparse:如何逐级打印帮助?

使用 argparse 打印命令行参数?

python argparse:如何在错误时自动显示帮助?

Python:argparse 帮助文本的分页?

如何让 argparse 使用选项而不是前缀从文件中读取参数