我正在使用 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
提交
取消