gpt4 book ai didi

Python 参数解析 : How to insert newline the help text in subparser?

转载 作者:太空狗 更新时间:2023-10-29 18:29:48 29 4
gpt4 key购买 nike

此问题与 question asked earlier 有关,但可能无关。问题是:在使用子解析器时,如何在下面给定的(有效的)示例中的帮助文本中使用换行符?

import argparse

parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter)

subparsers = parser.add_subparsers()

parser_start = subparsers.add_parser('stop')
parser_start.add_argument("file", help = "firstline\nnext line\nlast line")

print parser.parse_args()

我的输出如下:

tester.py  stop -h
usage: tester.py stop [-h] file

positional arguments:
file firstline next line last line

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

file 帮助的预期输出应该是:

first line
next line
last line

最佳答案

subparsers.add_parser() 方法采用与 argparse.ArgumentParser() 相同的 ArgumentParser 构造函数参数。因此,要将 RawTextHelpFormatter 用于子解析器,您需要在添加子解析器时显式设置 formatter_class

>>> import argparse
>>> parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter)
>>> subparsers = parser.add_subparsers()

更改此行以设置子解析器的 formatter_class:

>>> parser_start = subparsers.add_parser('stop', formatter_class=argparse.RawTextHelpFormatter)

现在,您的帮助文本将包含换行符:

>>> parser_start.add_argument("file", help="firstline\nnext line\nlast line")
_StoreAction(option_strings=[], dest='file', nargs=None, const=None, default=None, type=None, choices=None, help='firstline\nnext line\nlast line', metavar=None)

>>> print parser.parse_args(['stop', '--help'])
usage: stop [-h] file

positional arguments:
file firstline
next line
last line

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

关于Python 参数解析 : How to insert newline the help text in subparser?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15530575/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com