Comment ajouter un indicateur facultatif à mes arguments de ligne de commande?
par exemple. pour que je puisse écrire
python myprog.py
ou
python myprog.py -w
J'ai essayé
parser.add_argument('-w')
Mais je viens de recevoir un message d'erreur disant
Usage [-w W]
error: argument -w: expected one argument
ce que je suppose que cela signifie qu’il veut une valeur d’argument pour l’option -w. Comment accepter un drapeau?
Je trouve http://docs.python.org/library/argparse.html plutôt opaque sur cette question.
Comme vous l'avez, l'argument w attend une valeur après -w sur la ligne de commande. Si vous souhaitez simplement basculer un commutateur en définissant une variable True
ou False
, consultez http://docs.python.org/dev/library/argparse.html #action (spécifiquement store_true et store_false)
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-w', action='store_true')
Edit: Comme le souligne Sven, une valeur par défaut dans ce cas est superflue.
Ajouter un extrait rapide pour qu'il soit prêt à être exécuté:
Source: myparser.py
import argparse
parser = argparse.ArgumentParser(description="Flip a switch by setting a flag")
parser.add_argument('-w', action='store_true')
args = parser.parse_args()
print args.w
tilisation:
python myparser.py -w
>> True