Argparse引数に特定の値を許可する [重複] 質問する

Argparse引数に特定の値を許可する [重複] 質問する

次のようなことを要求することは可能ですか?argparse引数はいくつかのプリセット値の 1 つになりますか?

私の現在のアプローチは、引数を手動で調べ、それが許可された値の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)

これは特に難しいというわけではなく、むしろ面倒に思えるのです。

ベストアンサー1

argparse引数は、choicesパラメータ:

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

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

を参照してくださいドキュメント詳細については。

おすすめ記事