Faire d'un texte une ligne de code
noradan
Messages postés
19
Statut
Membre
-
heyquem Messages postés 808 Statut Membre -
heyquem Messages postés 808 Statut Membre -
Bonjour,
existe-t-il un moyen pour faire d'une ligne de texte par exemple
"toto=[[1,2],[4,5]]"
quelque chose qui fasse ce que vous pensez c'est-à-dire
qui assigne à toto la liste [[1,2],[4,5]]
Autrement bien sûr qu'en lisant la chaîne caractère par caractère avec des bordés de tests
et de recherche d'occurence
quelque chose du genre "eval" qui interprète un texte comme un code python (si ce texte est correctement rédigé bien entendu)
(C'est pour stocker des listes dans un fichier et pouvoir en rappeler une avec son nom)
Merci
existe-t-il un moyen pour faire d'une ligne de texte par exemple
"toto=[[1,2],[4,5]]"
quelque chose qui fasse ce que vous pensez c'est-à-dire
qui assigne à toto la liste [[1,2],[4,5]]
Autrement bien sûr qu'en lisant la chaîne caractère par caractère avec des bordés de tests
et de recherche d'occurence
quelque chose du genre "eval" qui interprète un texte comme un code python (si ce texte est correctement rédigé bien entendu)
(C'est pour stocker des listes dans un fichier et pouvoir en rappeler une avec son nom)
Merci
A voir également:
- Faire d'un texte une ligne de code
- Code ascii - Guide
- Partage de photos en ligne - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
1 réponse
Bonjour
https://docs.python.org/2/reference/simple_stmts.html#the-exec-statement
Mais ce que tu veux faire s'appelle de la sérialisation / désérialisation.
Tu pense bien que tu n'est pas le premier à avoir eu envie de faire ça et que Python dispose d'un module dédié pour ça,
https://docs.python.org/2/library/pickle.html#index-0
Nota Bene: il faut ouvrir le fichier de pickling en mode binaire, càd avec
Je crois qu'on peut mettre n'importe quelle extension au fichier de sérialisation, mais il vaut mieux éviter des extensions qui ont déjà un sens comme .rtf , .pdf , .jpg etc, ça ne sert à rien de créer de potentiels problèmes
Je te laisse lire dans la doc la différence entre
https://docs.python.org/2/reference/simple_stmts.html#the-exec-statement
exec("toto=[[1,2],[4,5]]" )
Mais ce que tu veux faire s'appelle de la sérialisation / désérialisation.
Tu pense bien que tu n'est pas le premier à avoir eu envie de faire ça et que Python dispose d'un module dédié pour ça,
pickle:
https://docs.python.org/2/library/pickle.html#index-0
from cPickle import dump, load
with open('fifi.pkl','wb') as f:
dump([[1,2],[4,5]],f)
with open('fifi.pkl','rb') as g:
titi = load(g)
print 'titi:',titi
Nota Bene: il faut ouvrir le fichier de pickling en mode binaire, càd avec
'wb'et
'rb'comme mode, et non pas seulement
'w'et
'r'.
Je crois qu'on peut mettre n'importe quelle extension au fichier de sérialisation, mais il vaut mieux éviter des extensions qui ont déjà un sens comme .rtf , .pdf , .jpg etc, ça ne sert à rien de créer de potentiels problèmes
Je te laisse lire dans la doc la différence entre
pickleet
cPickle.