Problème :Vous avez un fichier de code Python script.py
et vous voulez l'exécuter dans votre shell Python avec des arguments.
Exemple :Vous recherchez une fonction execute("script.py", arg1, arg2, ...)
.
# Some Python Code # ... execute("script.py", arg1, arg2, ...)
Les arguments arg1, arg2, ...
doit être utilisé dans script.py
.
Comment exécuter le fichier Python dans votre code Python en passant les arguments au fichier Python ?
Solution :Les quatre étapes suivantes vous aideront à exécuter un Python script.py
avec des arguments dans votre code Python.
- Définir un fichier Python
script.py
qui accède aux arguments en utilisant lesys.argv
variable accessible via lesys
module. Cette variable est définie au niveau du système d'exploitation, vous pouvez donc la transmettre dans votre script Python appelant et la remplir avec les arguments souhaités. - Remplir la variable
sys.argv
avec vos valeurs souhaitées dans le script Python appelant. - Charger le fichier Python
script.py
dans une chaîne Python. - Passez la chaîne Python dans le
exec()
intégré de Python fonction. Cela exécute le code défini dans le fichierscript.py
.
Afin de passer des arguments à votre script Python, vous devrez importer le sys
module. Une fois ce module importé dans votre code, à l'exécution sys.argv
existera, contenant une liste de tous les arguments passés à votre script.
Considérez le script suivant :
# script.py import sys print(sys.argv)
Pour tester les eaux, exécutons ce script à partir d'une invite de commande avec python3 Alice Bob Carl
:
$ python3 Alice Bob Carl ['Alice', 'Bob', 'Carl']
Voici comment exécuter ce code dans votre script Python local et définir également les arguments :
# your local script import sys script = open("script.py") code = script.read() # set the arguments to be read by script.py sys.argv = ['Alice', 'Bob', 'Carl']
La ligne sys.argv = ['Alice', 'Bob', 'Carl']
définit les arguments lus par votre fichier script.py
en utilisant le même sys.argv
variable. Encore une fois, notez que la variable sys.argv
est défini au niveau du système d'exploitation global. Ainsi, tout changement sera vu par tout script accédant à cette variable.