argparseでヘルプメッセージをグループ化

argparseでオプションの数が多くなった際に、ヘルプメッセージをグループ化する方法


Pythonでオプションの数が多くなった場合は、add_argument_group()でグループを追加することでヘルプメッセージの見やすさが向上します。

あくまでヘルプメッセージのグループ化だけなのでその他の動作には影響を与えません

使用例

import argparse
import sys


def main():
    parser = argparse.ArgumentParser()

    group_a = parser.add_argument_group('Group A')
    group_a.add_argument('--a.max', help='Max for A', metavar='NUM')
    group_a.add_argument('--a.min', help='Min for A', metavar='NUM')

    group_b = parser.add_argument_group('Group B')
    group_b.add_argument('--b.max', help='Max for B', metavar='NUM')
    group_b.add_argument('--b.min', help='Min for B', metavar='NUM')

    parser.print_help()


if __name__ == "__main__":
    sys.exit(main())

上記コードの実行例は以下のようになります

usage: argparse_group.py [-h] [--a.max NUM] [--a.min NUM] [--b.max NUM]
                         [--b.min NUM]

optional arguments:
  -h, --help   show this help message and exit

Group A:
  --a.max NUM  Max for A
  --a.min NUM  Min for A

Group B:
  --b.max NUM  Max for B
  --b.min NUM  Min for B

おすすめ