我使用的是Python 3.6.3,有以下代码:
import argparse
from argparse import RawTextHelpFormatter
parser = 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()
帮助输出如下所示:
^{pr2}$上面的输出没有如预期那样包装帮助文本(除了我显式输入“\n”的地方)
但是,子parser的帮助输出如下所示:
$ ./foobar abcd -h
usage: foobar abcd [-h] zzz [zzz ...]
positional arguments:
zzz A very long help message goes here...... more help text goes
here zzzzzzz zzzzzzzzzzzzzzzzzzzzzzz
optional arguments:
-h, --help show this help message and exit
您需要给子parser提供与主解析器相同的
formatter_class
,这可以通过将formatter_class
传递给add_parser
来实现:相关问题 更多 >
编程相关推荐