objectif
Définir des —flags simples et des options mutuellement exclusives.
code minimal
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbose", action="store_true", help="mode verbeux")
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument("--json", action="store_true", help="sortie JSON")
group.add_argument("--text", action="store_true", help="sortie texte")
args = parser.parse_args([] + ["--json"])
print(args.verbose is False and args.json is True) # attendu: True
utilisation
python app.py --text
python app.py -v --json
variante(s) utile(s)
import argparse
p = argparse.ArgumentParser()
p.add_argument("--count", type=int, default=0)
print(p.parse_args([]).count == 0)
notes
- action=“store_true” crée un bool sans valeur explicitée.
- Les groupes exclusifs imposent un seul choix valide.