Python argparse:如何在帮助文本中插入换行符?


问题内容

argparse在Python
2.7中
用于解析输入选项。我的选择之一是多项选择。我想在其帮助文本中列出一个列表,例如

from argparse import ArgumentParser

parser = ArgumentParser(description='test')

parser.add_argument('-g', choices=['a', 'b', 'g', 'd', 'e'], default='a',
    help="Some option, where\n"
         " a = alpha\n"
         " b = beta\n"
         " g = gamma\n"
         " d = delta\n"
         " e = epsilon")

parser.parse_args()

但是,argparse删除所有换行符和连续的空格。结果看起来像

〜/下载:52 $ python2.7 x.py -h
用法:x.py [-h] [-g {a,b,g,d,e}]

测试

可选参数:
  -h,--help显示此帮助消息并退出
  -g {a,b,g,d,e}某些选项,其中a = alpha b = beta g = gamma d = delta e
                  = epsilon

如何在帮助文本中插入换行符?


问题答案:

尝试使用RawTextHelpFormatter

from argparse import RawTextHelpFormatter
parser = ArgumentParser(description='test', formatter_class=RawTextHelpFormatter)