Analyser les arguments de ligne de commande à l'aide de Python

Vaibhav Vaibhav 29 mars 2022
Analyser les arguments de ligne de commande à l'aide de Python

Lors de l’exécution de programmes Python à partir de la ligne de commande ou du shell, nous pouvons transmettre des valeurs sous forme de chaînes, techniquement, des arguments ou des options, au programme. Le programme peut accéder à ces valeurs et effectuer son exécution et même utiliser ces valeurs pour le calcul.

Cet article expliquera comment nous pouvons analyser ces arguments de ligne de commande à l’aide de Python et les utiliser.

Analyser les arguments de ligne de commande à l’aide du module optparse

Le module optparse est un package Python flexible et pratique pour analyser les options de ligne de commande. Il est intégré au Python standard. Il utilise une méthodologie déclarative pour analyser les options de ligne de commande. Pour utiliser ce package, nous devons d’abord créer un objet de la classe OptionParser puis ajouter des détails sur les options ou arguments possibles à l’aide de la méthode add_option(). La méthode add_option() accepte des arguments tels que option (le nom de l’option), type (le type de données de l’option), help (le texte d’aide de l’option) et default (le valeur par défaut de l’option, si elle n’est pas spécifiée dans la commande). Pour récupérer les options et leurs valeurs depuis la commande en ligne de commande sous forme de dictionnaire, on peut utiliser la méthode parse_args().

Comprenons mieux l’utilisation de cette bibliothèque à l’aide d’un exemple. Nous allons implémenter un programme Python simple qui vérifiera trois options : -a, -b et -c. Ici, -a et -b représentent les opérandes, + est l’opérateur et -c est essentiellement la somme cible. De plus, le code vérifiera ces valeurs, leur attribuera la valeur 0 si aucune valeur n’est trouvée dans la commande en ligne de commande, et enfin, vérifiera si a + b est égal à -c ou non. De plus, il imprimera également les résultats dans une chaîne bien formatée.

import optparse

parser = optparse.OptionParser()
parser.add_option("-a", help="First Number", default=0)
parser.add_option("-b", help="Second Number", default=0)
parser.add_option("-c", help="Sum", default=0)
options, args = parser.parse_args()
a = int(options.a)
b = int(options.b)
c = int(options.c)
s = a + b
print(f"{a} + {b} = {s} and {s} {'==' if s == c else '!='} {c}")

Voici une brève explication du code ci-dessus. Tout d’abord, il crée un objet de classe OptionParser() et ajoute des informations sur les trois options cibles ; -a, -b et -c. Ensuite, il parcourt la ligne de commande ou la commande shell pour vérifier les options requises. Enfin, il stocke toutes les valeurs dans des variables séparées, calcule la somme ou a + b, et la compare à la somme cible ou c.

Testons ce programme pour les commandes suivantes.

python main.py -a 1 -b 2 -c 3
python main.py -a 1
python main.py -b 2
python main.py -c 3
python main.py 1 2 3
python main.py -a 1 2 3
python main.py 1 -b 2 3
python main.py 1 2 -c 3
python main.py 0 0 0
python main.py

Production :

1 + 2 = 3 and 3 == 3
1 + 0 = 1 and 1 != 0
0 + 2 = 2 and 2 != 0
0 + 0 = 0 and 0 != 3
0 + 0 = 0 and 0 == 0
1 + 0 = 1 and 1 != 0
0 + 2 = 2 and 2 != 0
0 + 0 = 0 and 0 != 3
0 + 0 = 0 and 0 == 0
0 + 0 = 0 and 0 == 0

À partir des sorties, nous pouvons déduire que les valeurs par défaut sont prises en compte lorsqu’aucune option de mot-clé ou aucun argument n’est fourni à la ligne de commande ou à la commande shell. Référez-vous aux commandes de test sauf la première (python main.py -a 1 -b 2 -c 3) pour une meilleure analyse.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.