Python >> Tutoriel Python >  >> Python Tag >> exec()

Comment exécuter un fichier Python avec des arguments en Python ?

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 le sys.argv variable accessible via le sys 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 fichier script.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.


Post précédent
No