Comment passer des arguments en ligne de commande avec python

Published: 02 février 2018

DMCA.com Protection Status

Supposons un simple script python intitulé my_script.py:

#!/usr/bin/env python

x = 2
y = 3

print(x+y)

que l'on peut executer depuis un terminale avec la commande:

python my_script.py

donne ici 5.

Si on veut maintenant passer des arguments au script python directement dans la ligne commande on peut utiliser la fonction sys.argv, illustration si on lance la commande:

python my_script.py abc def

alors

#!/usr/bin/env python

import sys

print(sys.argv)

x = 2
y = 3

print(x+y)

donne

['test.py', 'abc', 'def']
5

la fonction sys.argv retourne bien une liste d'arguments reçu par python qui sont dans cet exemple sys.argv[0] = test.py', (le nom du scipt) et sys.argv[0] = 'abc' et sys.argv[2] = 'def'

Remarque: sys.argv donne une liste d'arguments de type chaînes de caractères, il faut alors convertir les arguments si on veut pouvoir les additionner par exemple, illustration:

python my_script.py 2 3

avec

#!/usr/bin/env python

import sys

print(sys.argv)

x = int( sys.argv[1] )
y = int( sys.argv[2] )

print(x+y)

donne

['test.py', '2', '3']
5

Références

Liens Site
sys.argv docs.python.org
How to read/process command line arguments? stackoverflow
Parsing Command-Line Argument in Python gist.github.com