Pythonのargparseで「’required’ is an invalid argument for positionals」が出たら、requiredを消せばいい

ドキュメントが少し分かりづらかったのでメモ。

起動時の引数を便利に扱えるargparseモジュール

Pythonには、起動時の引数を便利に扱えるargparseモジュールがあります。

位置引数とオプション引数

argparseで扱う引数には以下の2種類があります。

add_argument()メソッド

どんな引数を指定できるかをadd_argument()メソッドで指定できますが、位置引数が必須だからと

argument.add_argument(
    'infile1',
    required=True,
    help='input file'
)

のように書いてしまうと、実行時に「'required' is an invalid argument for positionals」とエラーになり実行できません。

「required」はオプション引数のみに指定できる

required」はオプション引数に対する指定なため、位置引数に指定するとエラーになります。
もともと位置引数は必須なため、該当オプションの「required=True」を消せば、想定した動作になります。

コメントを残す

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