430

入力オプションを解析するため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 = アルファ b = ベータ g = ガンマ d = デルタ e のオプション
                  = イプシロン

ヘルプ テキストに改行を挿入する方法は?

4

10 に答える 10

509

使用してみてくださいRawTextHelpFormatter

from argparse import RawTextHelpFormatter
parser = ArgumentParser(description='test', formatter_class=RawTextHelpFormatter)
于 2010-10-04T08:49:57.397 に答える
0

RawTextHelpFormatterインデントを使用して新しい行を取得し、処理するさらに別の簡単な方法は、

import argparse

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

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()

出力は

$ python2 x.py -h
usage: x.py [-h] [-g {a,b,g,d,e}]

test

optional arguments:
  -h, --help      show this help message and exit
  -g {a,b,g,d,e}  Some option, where
                   a = alpha
                   b = beta
                   g = gamma
                   d = delta
                   e = epsilon

于 2021-12-31T05:05:30.947 に答える