Maison  >  Article  >  développement back-end  >  Comment transmettre une liste comme argument à un programme de ligne de commande à l’aide d’argparse ?

Comment transmettre une liste comme argument à un programme de ligne de commande à l’aide d’argparse ?

DDD
DDDoriginal
2024-10-28 05:30:02974parcourir

How Do I Pass a List as an Argument to a Command-Line Program Using argparse?

Passer des listes en tant qu'arguments dans argparse

Lorsque vous essayez de transmettre une liste en tant qu'argument à un programme en ligne de commande utilisant argparse, il est essentiel pour comprendre les options disponibles pour représenter les listes dans l'analyseur.

Non recommandé : utiliser type=list

Évitez d'utiliser type=list avec argparse car cela peut conduire à des erreurs résultats. Il renverra une liste de listes, pas une seule liste contenant les éléments souhaités.

Utiliser nargs pour les arguments requis

Le paramètre nargs vous permet de spécifier le nombre de arguments qu’une option accepte. Pour transmettre une liste comme argument obligatoire, utilisez :

<code class="python">parser.add_argument('-l', '--list', nargs='+', help='Set flag', required=True)</code>

Utilisez action='append' pour les arguments facultatifs

Pour les arguments facultatifs, utilisez action='append ' pour permettre de fournir plusieurs instances de l'argument.

<code class="python">parser.add_argument('-l', '--list', action='append', help='Set flag')</code>

Syntaxe pour invoquer ces options

Pour les nargs, les arguments doivent être fournis ensemble sans espaces, tels que :

<code class="bash">python test.py -l 12345678</code>

Pour action='append', l'argument doit être fourni plusieurs fois, par exemple :

<code class="bash">python test.py -l 1234 -l 5678</code>

Considérations supplémentaires

  • N'utilisez pas de guillemets lorsque vous passez des arguments à argparse sur la ligne de commande.
  • Si vous souhaitez que les éléments de la liste soient convertis en type (par exemple, en entiers), utilisez type=int dans les nargs paramètre.
  • nargs avec ou * autorise respectivement 1 ou plusieurs arguments et ? autorise 0 ou 1 argument. Pour un nombre spécifique d'arguments, fournissez un entier aux nargs.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn