允许 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)

这并不是说这是特别困难的,而是它似乎是混乱的。

95824 次浏览

Argparse 参数可以限制为具有 choices参数的特定值:

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


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

有关更多细节,请参见 医生