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

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

Barbara Streisand
Barbara Streisandoriginal
2024-10-30 04:10:28846parcourir

How can you pass a list of arguments to a command-line program using argparse?

Passer des listes en tant qu'arguments de ligne de commande avec argparse


Lors de la création de programmes en ligne de commande, il est souvent avantageux de permettre aux utilisateurs de passer des listes comme arguments. argparse rend cela possible, en fournissant plusieurs options pour y parvenir.


nargs


Pour recevoir une liste d'arguments, utilisez le paramètre 'nargs'. Spécifiez « » pour accepter un ou plusieurs arguments, « * » pour en accepter zéro ou plus, « ? » pour accepter zéro ou un, ou un nombre spécifique (comme 2) pour accepter ce nombre exact d'arguments.


parser = argparse.ArgumentParser()<br>parser.add_argument('- l', '--list', nargs=' ')<br>

Cette approche permet aux utilisateurs de fournir facilement plusieurs arguments en une seule entrée.


append


Vous pouvez également utiliser l'action « ajouter » pour ajouter chaque argument à une liste au fur et à mesure qu'il est rencontré.< /p>

parser.add_argument('-l', '--list', action='append')<br>

Cette méthode nécessite des utilisateurs pour spécifier l'indicateur plusieurs fois, un pour chaque argument qu'ils souhaitent inclure dans la liste.


Éviter type=list


< ;p>Bien qu'il puisse sembler intuitif de définir « type » sur « liste », cela n'est pas recommandé car cela renvoie une liste de listes, pas une liste aplatie. Cela peut entraîner un comportement inattendu.


Exemple d'utilisation


Considérez un script dans lequel l'utilisateur doit transmettre une liste d'entiers.


parser = argparse.ArgumentParser()<br>parser.add_argument('-l', '--list', nargs=' ', type=int)<br>

Cela permet à l'utilisateur de saisir plusieurs entiers, qui sont ensuite automatiquement convertis en une liste d'entiers et stockés dans la variable 'list'.


Remarque :



  • Évitez d'utiliser des guillemets sur la ligne de commande car ils peuvent interférer avec l'analyse d'argparse.
  • N'utilisez pas type=list, car cela conduit à une liste de listes au lieu d'une liste aplatie.

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