允许为Argparse参数指定特定的值

197

是否可以要求 argparse 的参数是预设值之一?

我当前的做法是手动检查参数,如果不是允许的值之一,则调用 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个回答

351

使用choices 参数可以限制 argparse 参数的取值范围:

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

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

详见文档获取更多细节。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接