1. ホーム
  2. python

[解決済み] Argparseの引数に特定の値を許可する [重複] 。

2022-04-26 19:43:59

質問

を要求することは可能ですか? argparse の引数は、いくつかのプリセット値のうちの1つでなければなりませんか?

私の現在のアプローチは、引数を手動で調べ、それが許可された値の一つでない場合は print_help() で終了します。

現在の実装はこんな感じです。

...
parser.add_argument('--val',
                    help='Special testing value')

args = parser.parse_args(sys.argv[1:])
if args.val not in ['a', 'b', 'c']:
    parser.print_help()
    sys.exit(1)

特に難しいというわけではなく、雑に見えるということです。

どのように解決するのか?

argparse の引数を特定の値に制限するためには choices パラメータがあります。

...
parser.add_argument('--val',
                    choices=['a', 'b', 'c'],
                    help='Special testing value')

args = parser.parse_args(sys.argv[1:])

をご覧ください。 ドキュメント をご覧ください。