我正在尝试编写一个相当长的脚本,使用多个不同的数据源,并且可能在许多不同阶段出错。每次发现输入数据中的某些错误时,必须从头开始重新启动整个过程并不是太有趣所以我虽然将变量(实际创建数据文件的路径)保存到备份文件然后读入此文件并选择我离开的地方。不幸的是
from previousrun import *
只在本地导入变量,我不能在每个函数中使用import,因为Python告诉我它在模块级别是不允许的。有没有办法从另一个文件导入未知数量的变量并让它们全局可用?
答案 0 :(得分:0)
在你的函数中使用它:
`locals().update(importlib.import_module("importlib").__dict__)`
和import importlib
。
答案 1 :(得分:0)
将要保存的所有参数附加到对象然后使用pickle
模块来处理序列化会不会更容易?
>>> class Save(object): pass
...
>>> s = Save()
>>> s.foo = 'foo'
>>> s.bar = 42
>>> import pickle
>>> fp = open('save.pickle', 'wb')
>>> pickle.dump(s, fp)
>>> fp.close()
>>>
>>> fp2 = open('save.pickle', 'rb')
>>> s2 = pickle.load(fp2)
>>> s2.foo
'foo'
>>> s2.bar
42
>>>