Ответ 1
Метод subparsers.add_parser()
принимает те же аргументы конструктора ArgumentParser
, что и argparse.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