argparse で -h
オプション使うとエラーが出る問題
Pythonの argparse
を使ってオプションの管理を行うときに、例えば高さの指定に-h
オプションを付けたいときありますよね。
example.py
parser = argparse.ArgumentParser(description = "hogehoge")
parser.add_argument("-h", type=int, help = "Height is necessary.", required=True)
しかし、-h
オプションを追加するとエラーとなります。
argparse.ArgumentError: argument -h: conflicting option string: -h
この -h
オプションは argparse
の方で予めHelp用のオプションとして管理されているため、オプションが競合してしまいます。
-h
オプションを使うには
Helpオプションが必要ないプログラムだと、parser生成部分でadd_help=False
を指定して、argparse
側のHelpオプションを無効にすると使えるようになります。
example.py
parser = argparse.ArgumentParser(description = "hogehoge", add_help=False)