Разрешение определенного значения аргумента Argparse
Можно ли требовать, чтобы аргумент argparse
был одним из нескольких заданных значений?
Моим нынешним подходом было бы изучить аргумент вручную, и если это не одно из разрешенных значений, вызовите print_help()
и выйдите.
Здесь текущая реализация:
...
parser.add_argument('--val', dest='val', action='store',
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', dest='val', action='store',
choices=['a','b','c'],
help='Special testing value')
args = parser.parse_args(sys.argv[1:])
Подробнее см. docs.