Sommaire

Interpréter les arguments de la ligne de commande

Un script Python est appelé par l’utilisateur

  • Soit par le biais de l’interpréteur :

python mon_script.py
  • Soit avec l’interpréteur interactif IPython :

ipython mon_script.py
  • Soit dans un environnement interactif IPython :

%run mon_script.py

Il est possible de passer des arguments en ligne de commande afin de donner des valeurs nécessaires à l’exécution d’un programme : elles influeront sur son comportement, déclencheront différentes actions/fonctions.

Pour cela, nous disposons de la librairie sys :

import sys

Les arguments passés au moment de l’exécution du script sont accessibles via la variable argv :

sys.argv

Il s’agit ni plus ni moins de la liste des arguments. Voici un premier script qui retourne des informations sur la liste des arguments :

import sys 
 
print("Le premier argument est le nom du script: {}".format(sys.argv[0])) 
print("Le nombre d’arguments est: {}".format(len(sys.argv))) 
print("Et ces arguments sont: {}".format(str(sys.argv)))

Appelons le script de la manière suivante :

obtenir_arguments.py arg1 2 arg3

Nous obtenons le résultat suivant :

In [3]: %run obtenir_arguments.py arg1 2 arg3  
Le premier argument est le nom du script: obtenir_arguments.py  
Le nombre d’arguments est: 4  
Et ces arguments sont: [’obtenir_arguments.py’, ’arg1’, ’2’, ...