Supposons un simple script python intitulé my_script.py:
#!/usr/bin/env pythonx = 2y = 3print(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 pythonimport sysprint(sys.argv)x = 2y = 3print(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 pythonimport sysprint(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 |
