允许Argparse参数的特定值

Mos*_*she 82 python python-2.7 argparse

是否可以要求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)
Run Code Online (Sandbox Code Playgroud)

这不是特别困难,而是看起来很混乱.

Mos*_*she 144

argparse参数可以使用以下choices参数限制为特定值:

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

args = parser.parse_args(sys.argv[1:])
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅文档.