Python 如何保存已加载的模块?
我得到了一个模块Python 如何保存已加载的模块?,python,module,Python,Module,我得到了一个模块stuff.py,里面有很多无组织的对象 import stuff myList = getattr(stuff, 'atomsList') myList.append ('protons') setattr(stuff, 'atomsList', myList) 我现在如何将stuff模块保存为stuff.py?我认为模块的想法是,它们是在一般意义上定义的,并且只有在以与类相同的方式“实例化”时才变得特定(并且您不能编辑源代码)。因此,除非您想直接编辑类,否则应该使用pi
stuff.py
,里面有很多无组织的对象
import stuff
myList = getattr(stuff, 'atomsList')
myList.append ('protons')
setattr(stuff, 'atomsList', myList)
我现在如何将
stuff
模块保存为stuff.py
?我认为模块的想法是,它们是在一般意义上定义的,并且只有在以与类相同的方式“实例化”时才变得特定(并且您不能编辑源代码)。因此,除非您想直接编辑类,否则应该使用pickle保存实例化的类
我想你要的是泡菜
例如:
然后,要打开文件,请使用:
with open("instantiated_stuff.pickle", ‘rb’) as pickle_file:
opend_stuff = pickle.load(pickle_file)
模块不是作为存储机制设计的。如果使用真正的序列化格式和单独的数据文件,您将有一个更干净的体验。您可以像其他人指出的那样查看搁置模块。python代码不打算修改模块。这在理论上是可以做到的,但自我修改代码确实不是一个好主意。要存储基于关键字的数据,您可以查看shelve,如果您想“传输”stuff中当前存在的所有数据,您可以编写一个单发脚本,循环通过
stuff
,并将每个项目写入shelve。之后,只需使用shelveConsider将数据存储为类的实例或字典。如果将其设置为类
,还可以根据需要为其提供对其中的数据进行操作的方法。看见
with open("instantiated_stuff.pickle", ‘rb’) as pickle_file:
opend_stuff = pickle.load(pickle_file)