Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Module « builtins » Python 3.11.3

Fonction exec - module builtins

Signature de la fonction exec

 def exec(python_code: str, globals: dict[str:object] = None, locals: dict[str:object] = None) -> None

Description

La fonction exec valide et exécute le code Python qui lui est passé en paramètre. L'évaluation peut se faire en tenant compte des deux contextes (global et local) passés eux aussi passés en paramètres.

>>> code = """for i in range(5):
...     print(i)"""
>>> exec(code)
0
1
2
3
4
>>> 
il est fortement déconseillé d'utiliser la fonction exec en raison des risques de sécurité potentiels (injection de code Python non initialement prévus) et des problèmes de performance. Si vous l'utilisez tout de même, soyez alors conscient des risques potentiels et veillez à avoir sécurisé le script à exécuter.

help(builtins.exec)

Execute the given source in the context of globals and locals.

The source may be a string representing one or more Python statements
or a code object as returned by compile().
The globals must be a dictionary and locals can be any mapping,
defaulting to the current globals and locals.
If only globals is given, locals defaults to it.
The closure must be a tuple of cellvars, and can only be used
when source is a code object requiring exactly that many cellvars.

Paramètres

ParamètreDescription
 python_code : str 
Le code Python à exécuter.
 globals : dict[str, object] = None 
Un dictionnaire définissant les variables globales utilisées pour l'exécution du code.
 locals : dict[str, object] = None 
Un dictionnaire définissant les variables locales utilisées pour l'exécution du code.

Valeur de retour

Cette méthode ne renvoie aucune valeur.

Exceptions

Exemple(s) de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
#!/usr/bin/python

while True:
    file_name = input("Veuillez saisir le nom du fichier Python à exécuter : ")
    if file_name == "exit":
        break
    with open(file_name, "r") as file:
        content = file.read()
        exec(content)

print("Bye bye")
Exemple d'utilisation de la fonction execute

Et voici les résultats produits par cet exemple. Durant mon test, le fichier hello.py se contentait de réaliser un affichage sur la console.

$> python sample.py
Veuillez saisir le nom du fichier Python à exécuter : hello.py
Hello world!
Veuillez saisir le nom du fichier Python à exécuter : exit
Bye bye
$> 

Voir aussi

La fonction compile
La fonction eval
La fonction globals
La fonction locals