J'ai quelques arguments positionnels et optionnels (en utilisant argparser), maintenant besoin d'ajouter un drapeau qui ne prend aucun argument/valeur et appelle essentiellement une méthode.Drapeau Argparser sans argument avec précédence
disons que ceci est l'analyseur actuel:
./run.py arg1 arg2 -i input
est ici le code bref exemple
parser.add_argument("arg1",
help="arg1 handler")
parser.add_argument("arg2",
help="arg2 handler")
parser.add_argument('-i', dest='input_handler',
help="input handler")
ce que je suis à la recherche est quelque chose de similaire lorsque vous utilisez --help
qui aboutit à montrer l'aide (et a priorité sur les autres indicateurs). Je veux donc prendre en charge un drapeau spécial (comme --help) sans me soucier de fournir tous les autres drapeaux dans la ligne de commande.
donc quelque chose comme ça devrait fonctionner également:
./run.py --list
Je pensais à utiliser 'store_true'
de prendre le drapeau sans valeur, mais il n'a pas la priorité sur les autres drapeaux.
des commentaires/suggestions est vraiment apprécié
Peut être utile si vous avez également partagé du code.Cela pourrait aider les gens à comprendre exactement ce que vous essayez d'accomplir. – Grimmy
Pourquoi avez-vous besoin de la précédence? Vous pouvez analyser vos arguments et vérifier si '--list' est présent avant d'agir sur vos autres arguments. – zwer
Je veux './run.py --list' pour fonctionner. Similaire à './run --help' qui ne nécessite aucun autre drapeau/argument. Si je ne fournis pas tous les autres arguments, argparser se plaint d'arguments manquants. – Mahyar