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.ArgumentParserformatter_class引数にargparse.RawTextHelpFormatterを指定しています。これにより、ヘルプテキスト内の改行やスペースがそのまま保持され、ヘルプメッセージが複数行に渡って表示されます。

ただし、RawTextHelpFormatterはすべてのヘルプテキスト(引数の説明を含む)に適用されます。一方、RawDescriptionHelpFormatterは説明とエピローグのみに適用され、引数のヘルプテキストには適用されません。

以上がPythonのargparseモジュールで複数行のヘルプテキストを表示する方法です。この情報がPythonでコマンドラインツールを作成する際の参考になれば幸いです。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です