163

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)

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

4

1 に答える 1

284

choicesargparse 引数は、次のパラメーターを使用して特定の値に制限できます。

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

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

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

于 2013-04-05T14:37:42.063 に答える