512 votes

Indicateurs de ligne de commande python argparse sans arguments

Comment puis-je ajouter une option de drapeau à ma ligne de commande arguments?

par exemple. donc, je peux écrire

python myprog.py 

ou

python myprog.py -w

J'ai essayé

parser.add_argument('-w')

Mais je viens d'obtenir un message d'erreur disant:

Usage [-w W]
error: argument -w: expected one argument

ce qui, pour moi, cela signifie qu'il veut d'une valeur de l'argument de l'option-w. Quelle est la façon de simplement accepter un drapeau?

Je suis la recherche http://docs.python.org/library/argparse.html plutôt opaque sur cette question.

835voto

Jdog Points 1183

Comme vous l'avez, l'argument de w s'attend à une valeur de l'après -w sur la ligne de commande. Si vous êtes simplement à la recherche d'appuyer sur un bouton par la définition d'une variable True ou False, ont un oeil à http://docs.python.org/dev/library/argparse.html#action (plus précisément store_true et store_false)

parser.add_argument('-w', action='store_true')

Edit: Comme Sven points, une valeur par défaut dans ce cas est superflu.

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