Pythonのargparseモジュールを使用してコマンドラインツールを作成する際、ヘルプテキストを複数行に分けて表示したい場合があります。しかし、デフォルトではargparseは改行や連続するスペースを削除します。これを解決するためには、RawTextHelpFormatter
またはRawDescriptionHelpFormatter
を使用します。
以下に具体的なコードを示します。
import argparse
parser = argparse.ArgumentParser(
description='details',
usage='use \"%(prog)s --help\" for more information',
formatter_class=argparse.RawTextHelpFormatter
)
parser.add_argument(
'--argument',
default=None,
type=sometype,
help='''First line
Second line
More lines
'''
)
このコードでは、argparse.ArgumentParser
のformatter_class
引数にargparse.RawTextHelpFormatter
を指定しています。これにより、ヘルプテキスト内の改行やスペースがそのまま保持され、ヘルプメッセージが複数行に渡って表示されます。
ただし、RawTextHelpFormatter
はすべてのヘルプテキスト(引数の説明を含む)に適用されます。一方、RawDescriptionHelpFormatter
は説明とエピローグのみに適用され、引数のヘルプテキストには適用されません。
以上がPythonのargparseモジュールで複数行のヘルプテキストを表示する方法です。この情報がPythonでコマンドラインツールを作成する際の参考になれば幸いです。