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

DDD
Libérer: 2024-10-28 05:30:02
original
1060 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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

<code class="bash">python test.py -l 1234 -l 5678</code>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal