1. ホーム
  2. python

[解決済み] argparseのヘルプテキストに改行を挿入するには?

2022-03-23 02:21:08

質問

を使っています。 argparse Python 2.7で 入力オプションのパース用です。私のオプションの1つは複数選択式です。そのヘルプテキストにリストを作りたいのです、例えば

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 は、すべての改行と連続したスペースを削除します。その結果、次のようになります。

~/Downloads: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
                  = イプシロン

ヘルプテキストに改行を入れるには?

解決方法は?

を使ってみてください。 RawTextHelpFormatter :

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