J'essaye d'écrire une petite fonction qui obtient un nom de variable, vérifie si elle existe, et si elle ne le charge pas depuis un fichier (utilisant pickle) vers l'espace de noms global.Chargement de fichiers dans des variables en python
J'ai essayé d'utiliser ceci dans un fichier:
import cPickle
#
# Load if neccesary
#
def loadfile(variable, filename):
if variable not in globals():
cmd = "%s = cPickle.load(file('%s','r'))" % (variable, filename)
print cmd
exec(cmd) in globals()
Mais il ne fonctionne pas - la variable ne soit pas définie. Qu'est-ce que je fais mal?
Cela ne fonctionne que lorsque je charge mon fichier avec execfile, mais pas quand je le charge avec l'importation. Pourquoi donc? Merci! –
Probablement parce que les variables globales ne sont globales que pour le module dans lequel elles se trouvent. –
Merci. Existe-t-il un moyen de passer automatiquement d'un module à la globals() de l'interpréteur? –