web-dev-qa-db-fra.com

argparse arguments optionnels "obligatoires"

Le module argparse de Python a ce que l'on appelle des arguments "facultatifs". Tous les arguments dont le nom commence par - ou -- sont facultatifs par défaut. En règle générale, les arguments obligatoires sont positionnels, et donc lors de l'exécution du programme, ils ne sont pas explicitement nommé.

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 à lire de cette façon), mais toujours obligatoires. c'est à dire.

$ hello-world --use-lang czech

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

31
ArjunShankar

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

parser.add_argument('--use-lang', required=True, help="Output language")
34
ArjunShankar