Python

Comment analyser les arguments sur la ligne de commande en Python

Comment analyser les arguments sur la ligne de commande en Python
Les arguments de ligne de commande sont utilisés pour transmettre des données dans le programme au moment de l'exécution du programme. Cette fonctionnalité est disponible sur la plupart des langages de programmation populaires. Mais le traitement des arguments de ligne de commande est différent pour différentes langues. Les valeurs des arguments sont données avec le nom du programme au moment de l'exécution du programme. Le langage Python prend en charge cette fonctionnalité. Comment les arguments de ligne de commande sont analysés dans le script Python est montré dans cet article.

Analyser l'argument de la ligne de commande à l'aide système module

Les arguments de la ligne de commande sont stockés dans une liste en utilisant système module.  système.argv est utilisé pour lire les valeurs des arguments de la ligne de commande. Le nombre total d'arguments de ligne de commande peut être compté en utilisant len() une fonction. L'utilisation de ce module est décrite dans la partie de l'article.

Exemple 1 : Lecture du nombre d'arguments et de valeurs d'arguments

Créez un fichier avec le script python suivant.  Ici, les valeurs des arguments de la ligne de commande sont stockées dans la variable, argv comme les autres langues. len() la méthode compte le nombre total d'arguments passés au moment de l'exécution du script. Les valeurs des arguments sont imprimées sous forme de tableau à la fin du script.

# Importer le module sys
importer le système
# Affiche le nombre total d'arguments
print('Total des arguments :', len(sys.argv))
print('Les valeurs des arguments sont :', str(sys.argv))

Production:

Le script ci-dessus est exécuté ici en utilisant quatre arguments de ligne de commande. Le premier argument est le nom du script et les autres sont des valeurs numériques. La sortie suivante apparaîtra après l'exécution du script.

Exemple 2 : Lecture des valeurs d'argument à l'aide de la boucle

Dans l'exemple précédent, les valeurs des arguments sont affichées sous forme de tableau. Créez un fichier avec le script suivant pour imprimer le type de variable d'argument et imprimer chaque valeur d'argument dans chaque ligne en utilisant la boucle for.

# Importer le module sys
importer le système
# Affiche le type de la variable, sys.argv
print(type(sys.argv))
# Affiche chaque argument de ligne de commande dans chaque ligne
print('Les arguments de la ligne de commande sont :')
pour moi dans sys.argv :
imprimer(i)

Production:

Le script ci-dessus est exécuté en fournissant trois arguments avec le nom du script. La sortie suivante apparaîtra après l'exécution du script.

Analyser l'argument de ligne de commande à l'aide du module getopt

Getopt module est utilisé pour analyser les arguments de la ligne de commande avec les options. getopt() méthode de ce module est utilisée pour lire les arguments. Cette méthode a trois arguments. Les deux premiers arguments sont obligatoires et le dernier argument est facultatif. Les utilisations de ces arguments sont données ci-dessous.

arguments : Il contient l'argument extrait de l'argument de la ligne de commande.

option_courte : Il peut s'agir de n'importe quelle lettre qui passe avec l'argument.

option_longue : Il est utilisé pour définir des options longues avec deux parties. Ce sont le nom de l'option et la valeur de l'option.

Syntaxe: obtenir.getopt(args, short_option, [long_option])

Exemple 3 : lecture des valeurs d'argument à l'aide d'options getopt courtes

obtenir module contient plus de fonctionnalités que système module. L'exemple suivant montre comment les options courtes peuvent être utilisées dans getopt() méthode. argv La variable stockera les arguments de la ligne de commande en omettant le nom du script. Ensuite, deux options sont définies dans le getopt() méthode qui peut être utilisée avec l'argument au moment de l'exécution. Si une erreur se produit, un message d'erreur s'affichera.

# Importer le module getopt
importer getopt
# Importer le module sys
importer le système
# Stocker la variable d'argument en omettant le nom du script
argv = sys.argv[1:]
 
essayer:
# Définir les options courtes getopt
options, arguments = getopt.getopt(argv, 'x:y:')
# affiche les options et l'argument
imprimer (options)
imprimer (arguments)
 
sauf getopt.GetoptError :
# Imprimer le message d'erreur si la mauvaise option est fournie
print('La mauvaise option est fournie')
# Terminer le script
système.sortie(2)

Production:

Exécutez le script sans aucun argument, arguments avec les options correctes et arguments avec la mauvaise option.

Exemple 4 : lecture des valeurs d'argument à l'aide des options getopt courtes et longues

Cet exemple montre comment les options courtes et longues peuvent être utilisées avec les valeurs d'argument. Il ajoutera deux nombres lorsque '-une' ou alors '-ajouter' sera utilisé comme option et soustraira deux nombres lorsque '-s' ou alors '-sous' sera utilisé en option au moment de l'exécution.

# Importer le module getopt
importer getopt
# Importer le module sys
importer le système
# Stocker la variable d'argument en omettant le nom du script
argv = sys.argv[1:]
# Initialiser la variable de résultat
résultat=0
 
essayer:
 
# Définir les options courtes et longues getopt
options, arguments = getopt.getopt(sys.argv[1:], 'a:s', ['add=','sub='])
 
# Lisez chaque option en utilisant la boucle for
pour opt, arg dans les options :
# Calculer la somme si l'option est -a ou --add
si opt-in ('-a', '--add'):
résultat = int(argv[1]) + int(argv[2])
# Calculer la traction solaire si l'option est -s ou --sub
elif opt in ('-s', '--sub'):
résultat = int(argv[1]) - int(argv[2])
 
print('Résultat = ', résultat)
sauf getopt.GetoptError :
# Imprimer le message d'erreur si la mauvaise option est fournie
print('La mauvaise option est fournie')
# Terminer le script
système.sortie(2)

Production:

Exécutez le script sans aucun argument ni option, arguments avec l'option '-a', arguments avec l'option '-s' et arguments avec la mauvaise option.

Analyser l'argument de la ligne de commande à l'aide du module argparse

Le module Argparse contient de nombreuses options pour lire les arguments de ligne de commande. Valeurs d'argument par défaut, l'argument avec le type de données, les arguments positionnels, le message d'aide, etc. peut être fourni par ce module.

Exemple 5 : lecture d'arguments de ligne de commande à l'aide de argparse

L'exemple suivant montre l'utilisation de argparse module pour lire l'argument de la ligne de commande. Ici, deux options sont définies pour la lecture des arguments de ligne de commande. Ceux-ci sont '-n' ou '-nom' et '-e' ou '-email'. Si l'utilisateur fournit un mauvais argument, il affichera une erreur avec un message d'utilisation. Si l'utilisateur fournit des options correctes avec les arguments, il affichera les valeurs des arguments. si l'utilisateur exécute le script avec l'option '-help', il fournira le message nécessaire pour exécuter le script.

# Importer le module argparse
importer argparse
# Importer le module sys
importer le système
# Déclarer la fonction pour définir les arguments de la ligne de commande
def readOptions(args=sys.argv[1:]):
parser = argparse.ArgumentParser(description="Les listes de commandes d'analyse.")
analyseur.add_argument("-n", "--name", help="Tapez votre nom.")
analyseur.add_argument("-e", "--email", help="Tapez votre email.")
opts = analyseur.parse_args(args)
retour opte
# Appeler la fonction pour lire les valeurs des arguments
options = readOptions(sys.argv[1:])
imprimer (options.Nom)
imprimer (options.e-mail)

Production:

Exécutez le script avec la mauvaise option, l'option correcte et l'option d'aide.

Conclusion:

Différentes manières de lire les arguments de ligne de commande sont expliquées dans ce tutoriel en utilisant trois modules python. J'espère que ce tutoriel aidera le codeur qui souhaite lire des données à l'aide d'arguments de ligne de commande en python.

Regardez la vidéo de l'auteur : ici

Meilleurs jeux de ligne de commande pour Linux
La ligne de commande n'est pas seulement votre plus grand allié lorsque vous utilisez Linux, elle peut également être une source de divertissement car...
Meilleures applications de mappage de manette de jeu pour Linux
Si vous aimez jouer à des jeux sur Linux avec une manette de jeu au lieu d'un système de saisie clavier et souris typique, il existe des applications ...
Outils utiles pour les joueurs Linux
Si vous aimez jouer à des jeux sur Linux, il est probable que vous ayez utilisé des applications et des utilitaires comme Wine, Lutris et OBS Studio p...