Arguments de ligne de commande en Python
-
Utilisez le module
sys
pour traiter les arguments de ligne de commande en Python -
Utilisez le module
getopt
pour traiter les arguments de ligne de commande en Python -
Utilisez le module
argparse
pour traiter les arguments de ligne de commande en Python
Les arguments de ligne de commande sont les valeurs fournies dans la fenêtre de ligne de commande lors de l’exécution du fichier. Ils sont accommodants car cela nous permet de passer les valeurs lors de l’exécution du programme.
En Python, différents modules peuvent être utilisés pour traiter les arguments de ligne de commande, qui sont décrits ci-dessous.
Utilisez le module sys
pour traiter les arguments de ligne de commande en Python
Le sys.argv()
permet de stocker les arguments fournis en ligne de commande dans une structure de type liste. Le nom du fichier est considéré comme le premier argument.
Par example,
import sys
print("Arguments without the script name ", (len(sys.argv) - 1))
print("Arguments given ")
for i in range(1, len(sys.argv)):
print(sys.argv[i])
Dans l’exemple ci-dessus, nous passons certains arguments au moment de l’exécution et affichons le nombre total d’arguments et leurs valeurs.
Utilisez le module getopt
pour traiter les arguments de ligne de commande en Python
Le module getopt
traite également les arguments de ligne de commande. Il nous permet de valider les valeurs données. Nous pouvons fournir des valeurs avec l’argument ainsi que des chaînes d’options que le script peut reconnaître. Ce module fonctionne avec le module sys pour un meilleur traitement.
Le constructeur getopt()
est utilisé pour initialiser l’objet, qui analyse les arguments. Il renvoie un getopt.error
lorsque l’option n’est pas reconnue dans la liste des arguments.
Nous l’utilisons dans le code ci-dessous.
import getopt
import sys
lst = sys.argv[1:]
options = "abc:"
long_options = ["A_Message", "B_Message", "C_Message"]
try:
arguments, values = getopt.getopt(lst, options, long_options)
for currentArgument, currentValue in arguments:
if currentArgument in ("-a", "--A_Message"):
print("Message A received")
elif currentArgument in ("-b", "--B_Message"):
print("Message B received")
elif currentArgument in ("-c", "--C_Message"):
print("Message C received")
except getopt.error as err:
print("Error")
Utilisez le module argparse
pour traiter les arguments de ligne de commande en Python
Le module argparse est de loin le module le plus pratique pour travailler avec des arguments de ligne de commande. Ce module offre beaucoup de flexibilité puisqu’il peut gérer des arguments positionnels, des arguments optionnels et également spécifier leur type.
Nous pouvons mettre des valeurs par défaut au cas où un argument manque et même afficher un message d’aide.
La fonction ArgumentParser()
crée un objet analyseur. La fonction parse.args()
lit les arguments depuis la ligne de commande.
Par example,
import argparse
parser = argparse.ArgumentParser(description="Which Message?")
parser.add_argument("a")
parser.add_argument("b")
args = parser.parse_args()
print(args.a, args.b)
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn