argparse arguments optionnels "obligatoires"

Le module argparse de Python a ce qu'on appelle des arguments 'optionnels'. Tous les arguments dont le nom commence par - ou -- sont facultatifs par défaut. Typiquement, les arguments obligatoires sont positionnels, et donc lors de l'exécution du programme, ils ne sont pas explicitement nommés.

Par exemple, dans un script qui avait:

parser.add_argument('language', help="Output language")

Les Invocations ressembleraient à:

$ hello-world czech

Il peut parfois être plus agréable d'avoir un argument obligatoire passé par nom (par exemple, les invocations scriptées sont plus faciles pour lire de cette façon), mais toujours être obligatoire. c'est à dire

$ hello-world --use-lang czech

Comment y parvenir? Les arguments nommés sont appelés 'optionnels' dans la documentation argparse, ce qui donne l'impression qu'ils ne peuvent pas être obligatoires. Est-il un moyen de les rendre obligatoires?

27
demandé sur ArjunShankar 2014-03-11 22:34:07

1 réponses

Selon la documentation canonique, il est possible dedéclarer des arguments 'optionnels' qui sont obligatoires . Vous utilisez l'argument required nommé de add_argument:

parser.add_argument('--use-lang', required=True, help="Output language")
30
répondu ArjunShankar 2014-03-11 18:34:07