Я пытаюсь написать небольшую функцию, которая получает имя переменной, проверяет, существует ли она, и если она не загружает ее из файла (с использованием pickle) в глобальное пространство имен.Загрузка файлов в переменные в python
Я попытался использовать это в файле:
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()
Но это не работает - переменная не нужно определять. Что я делаю не так?
Это работает, только когда я загружаю файл с помощью execfile, но не когда загружаю его с импортом. Почему это? Благодаря! –
Возможно, потому что глобальные переменные являются глобальными только для модуля, в котором они находятся. –
Спасибо. Есть ли способ автоматически перейти от модуля к глобалям() переводчика? –