171 votes

Autoriser des valeurs spécifiques pour un argument Argparse

Est-il possible d'exiger qu'un argparse argument être l'une des quelques valeurs prédéfinies ?

Mon approche actuelle consisterait à examiner l'argument manuellement et, s'il ne s'agit pas d'une des valeurs autorisées, appeler print_help() et sortir.

Voici l'implémentation actuelle :

...
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)

Ce n'est pas que cela soit particulièrement difficile, mais plutôt que cela semble être désordonné.

298voto

Moshe Points 4408

Un argument argparse peut être limité à des valeurs spécifiques avec la fonction choices paramètre :

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

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

Voir le docs pour plus de détails.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X