Executer une commande contenue dans une variable string

Résolu/Fermé
tpez Messages postés 330 Date d'inscription lundi 4 juillet 2016 Statut Membre Dernière intervention 17 juin 2019 - Modifié le 7 janv. 2018 à 11:16
tpez Messages postés 330 Date d'inscription lundi 4 juillet 2016 Statut Membre Dernière intervention 17 juin 2019 - 7 janv. 2018 à 19:41
Salut,
Alors voilà je vais faire simple car expliquer le pourquoi j'ai besoin de faire ça serrait trop long :D.
Dans mon programme python j'ai une variable
command = 'recup()'
. Cette variable est sous forme d'une string (et c'est volontaire).
recup()
est une fonction écrite dans un fichier intitulé include.py que j'ai importé comme ce-ci
from include import recup
. Et je souhaiterais savoir si il y a un moyen pour exécuter la commande contenue dans
command
.

En plus concis: je souhaite exécuter une commande contenue dans une variable de forme string.

Merci d'avance à ceux qui essayeront de me répondre.

1 réponse

Oui, avec eval.

>>> def a(): print("A")
... 
>>> cmd = "a()"
>>> eval(cmd)
A
>>> 


Mais, eval n'est à utiliser que sur des valeurs sûres à 100%.
Et en général il est préférable de s'en passer si on peut faire autrement, ce qui semble ton cas, puisque c'est défini en dur dans ton module.
2
tpez Messages postés 330 Date d'inscription lundi 4 juillet 2016 Statut Membre Dernière intervention 17 juin 2019 39
7 janv. 2018 à 19:41
Merci beaucoup ça fonctionne mais je ne peux malheureusement pas m'en passer car la pour simplifier j'ai fait comme si command était défini en dur mais dans mon programme ce n'est pas le cas puisque je récupère la valeur de command à l'intérieur d'une base de donnée.
0