Analyse des valeurs booléennes avec argparse
Dans argparse, l'analyse des arguments booléens de ligne de commande est une tâche courante, mais un piège courant survient lorsque l'on tente pour analyser des valeurs telles que "--foo True" ou "--foo False" en utilisant l'argument type=bool. Étonnamment, même lorsque vous utilisez une chaîne vide comme argument (par exemple, "--foo " "), la valeur analysée est évaluée à True.
Pour une analyse booléenne correcte, argparse propose deux approches recommandées :
Approche canonique :
Utilisez la syntaxe '--feature' et '--no-feature', prise en charge nativement par argparse dans Python 3.9 et supérieur :
<code class="python">parser.add_argument('--feature', action=argparse.BooleanOptionalAction)</code>
<code class="python">parser.add_argument('--feature', action='store_true') parser.add_argument('--no-feature', dest='feature', action='store_false') parser.set_defaults(feature=True)</code>
Approche facultative (utilisation de la conversion de type) :
Si la syntaxe "--arg<code class="python">parser.add_argument("--arg", type=ast.literal_eval)</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!