argparse store false si non spécifié

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

Comment puis-je stocker faux si -auto n’est pas spécifié? Je peux à peine me rappeler que de cette façon, il stocke Aucun si non spécifié

L’option store_true crée automatiquement une valeur par défaut False .

De même, store_false sera store_false par défaut sur True lorsque l’argument de ligne de commande n’est pas présent.

La source de ce comportement est succincte et claire: http://hg.python.org/cpython/file/2.7/Lib/argparse.py#l861

Les documents d’argparse ne sont pas clairs sur le sujet, donc je vais les mettre à jour maintenant: http://hg.python.org/cpython/rev/49677cc6d83a

Avec

 import argparse parser=argparse.ArgumentParser() parser.add_argument('-auto', action='store_true', ) args=parser.parse_args() print(args) 

fonctionnement

 % test.py 

les rendements

 Namespace(auto=False) 

Donc, il semble stocker False par défaut.

store_false sera par défaut à 0 par défaut (vous pouvez tester pour vérifier). Pour changer ce qu’il est par défaut, ajoutez simplement default=True à votre déclaration.

Donc, dans ce cas: parser.add_argument('-auto', action='store_true', default=True)