logo

Arguments de ligne de commande en Python

Les arguments donnés après le nom du programme dans le shell de ligne de commande du système d'exploitation sont appelés Arguments de ligne de commande . Python propose différentes manières de traiter ces types d'arguments. Les trois plus courants sont :

Utilisation de sys.argv

Le module sys fournit des fonctions et des variables utilisées pour manipuler différentes parties de l'environnement d'exécution Python. Ce module donne accès à certaines variables utilisées ou maintenues par l'interpréteur et à des fonctions qui interagissent fortement avec l'interpréteur.
L'une de ces variables est sys.argv qui est une simple structure de liste. Son objectif principal est :



  • Il s'agit d'une liste d'arguments de ligne de commande.
  • len(sys.argv) fournit le nombre d'arguments de ligne de commande.
  • sys.argv[0] est le nom du script Python actuel.

Exemple: Supposons qu'il existe un script Python pour ajouter deux nombres et que les nombres soient transmis comme arguments de ligne de commande.

Python3








# Python program to demonstrate> # command line arguments> import> sys> # total arguments> n>=> len>(sys.argv)> print>(>'Total arguments passed:'>, n)> # Arguments passed> print>(>' Name of Python script:'>, sys.argv[>0>])> print>(>' Arguments passed:'>, end>=> ' '>)> for> i>in> range>(>1>, n):> >print>(sys.argv[i], end>=> ' '>)> > # Addition of numbers> Sum> => 0> # Using argparse module> for> i>in> range>(>1>, n):> >Sum> +>=> int>(sys.argv[i])> > print>(>' Result:'>,>Sum>)>

>

>

Sortir:

arguments de ligne de commande python

Utilisation du module getopt

Python module getopt est similaire à la fonction getopt() de C. Contrairement au module sys, le module getopt étend la séparation de la chaîne d'entrée par validation des paramètres. Il permet des options courtes et longues, y compris une attribution de valeur. Cependant, ce module nécessite l'utilisation du module sys pour traiter correctement les données d'entrée. Pour utiliser le module getopt, il est nécessaire de supprimer le premier élément de la liste des arguments de ligne de commande.

Syntaxe: getopt.getopt(arguments, options, [long_options])
Paramètres:
arguments : Liste des arguments à passer.
choix : Chaîne de lettres d'option que le script souhaite reconnaître. Les options qui nécessitent un argument doivent être suivies de deux points (:).
options_longues : Liste de chaîne avec le nom des options longues. Les options qui nécessitent des arguments doivent être suivies d'un signe égal (=).
Type de retour : Renvoie une valeur composée de deux éléments : le premier est une liste de paires (option, valeur). La seconde est la liste des arguments du programme restants après la suppression de la liste d'options.

les essentiels de la construction d'ubuntu

Exemple:

Python3




# Python program to demonstrate> # command line arguments> import> getopt, sys> # Remove 1st argument from the> # list of command line arguments> argumentList>=> sys.argv[>1>:]> # Options> options>=> 'hmo:'> # Long options> long_options>=> [>'Help'>,>'My_file'>,>'Output='>]> try>:> ># Parsing argument> >arguments, values>=> getopt.getopt(argumentList, options, long_options)> > ># checking each argument> >for> currentArgument, currentValue>in> arguments:> >if> currentArgument>in> (>'-h'>,>'--Help'>):> >print> (>'Displaying Help'>)> > >elif> currentArgument>in> (>'-m'>,>'--My_file'>):> >print> (>'Displaying file_name:'>, sys.argv[>0>])> > >elif> currentArgument>in> (>'-o'>,>'--Output'>):> >print> ((>'Enabling special output mode (% s)'>)>%> (currentValue))> > except> getopt.error as err:> ># output error, and return with an error code> >print> (>str>(err))>

>

>

Sortir:

arguments de ligne de commande python

Utilisation du module argparse

L'utilisation du module argparse est une meilleure option que les deux options ci-dessus car elle fournit de nombreuses options telles que des arguments de position, la valeur par défaut des arguments, un message d'aide, la spécification du type de données de l'argument, etc.

Note: Comme argument facultatif par défaut, il inclut -h, ainsi que sa version longue –help.

la vérification Java est nulle

Exemple 1: Utilisation de base du module argparse.

Python3




# Python program to demonstrate> # command line arguments> import> argparse> # Initialize parser> parser>=> argparse.ArgumentParser()> parser.parse_args()>

>

>

Sortir:

arguments de ligne de commande python


Exemple 2 : Ajout d'une description au message d'aide.

Python3




# Python program to demonstrate> # command line arguments> import> argparse> msg>=> 'Adding description'> # Initialize parser> parser>=> argparse.ArgumentParser(description>=> msg)> parser.parse_args()>

>

>

point java

Sortir:

arguments de ligne de commande python


Exemple 3 : Définir une valeur facultative

Python3




# Python program to demonstrate> # command line arguments> import> argparse> # Initialize parser> parser>=> argparse.ArgumentParser()> # Adding optional argument> parser.add_argument(>'-o'>,>'--Output'>,>help> => 'Show Output'>)> # Read arguments from command line> args>=> parser.parse_args()> if> args.Output:> >print>(>'Displaying Output as: % s'> %> args.Output)>

>

>

Sortir:

arguments de ligne de commande python