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 |