我正在使用 Python 3.6.3 并有这段代码:import argparsefrom argparse import RawTextHelpFormatterparser = argparse.ArgumentParser(prog='foobar', formatter_class=RawTextHelpFormatter)parser.add_argument('-lf', '--logfile', dest='logfile', default='/dev/null', help='some very long help message goes here ..............................\n' + 'more text here xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')subparsers = parser.add_subparsers()abcd_parser = subparsers.add_parser('abcd')abcd_parser.add_argument('zzz', nargs='+', help='A very long help message\ngoes here...... more help text goes here zzzzzzz zzzzzzzzzzzzzzzzzzzzzzz ')args = parser.parse_args()帮助输出如下所示:$ ./foobar -husage: foobar [-h] [-lf LOGFILE] {abcd} ...positional arguments: {abcd}optional arguments: -h, --help show this help message and exit -lf LOGFILE, --logfile LOGFILE some very long help message goes here .............................. more text here xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx上面的输出没有按预期包装帮助文本(除非我明确输入了“\n”)但是,子解析器的帮助输出如下所示:$ ./foobar abcd -husage: foobar abcd [-h] zzz [zzz ...]positional arguments: zzz A very long help message goes here...... more help text goes here zzzzzzz zzzzzzzzzzzzzzzzzzzzzzzoptional arguments: -h, --help show this help message and exit我如何才能将“转到此处”打印在新行上(我指定了“\n”但没有用)如何禁用换行,以便“zzz”参数的整个帮助文本在一行上?
1 回答
慕慕森
TA贡献1856条经验 获得超17个赞
您需要为子formatter_class
解析器提供与提供给主解析器的相同的子解析器,您可以通过传递formatter_class
给add_parser
:
abcd_parser = subparsers.add_parser('abcd', formatter_class=RawTextHelpFormatter)
添加回答
举报
0/150
提交
取消