Python的pickle模块可以序列化任何对象,将其保存到磁盘中,并在需要的时候读取出来。这不就是可以用磁盘换内存的意思啦,虽然要牺牲一点时间!
pickle模块中最常用的函数为:
1. pickle.dump(obj, file, [,protocol])
- 函数的功能:将obj对象序列化存入已经打开的file中。
-
参数讲解:
- obj:想要序列化的obj对象。
- file: 文件名称。
- protocol:序列化使用的协议。如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL,则使用最高的协议版本。
- 代码示例:把x_test写入临时文件并将回收其内存空间
import pickle
import gc
# use temporary file to reduce memory
with open('temporary.pickle', mode='wb') as f:
pickle.dump(x_test, f)
del x_test
gc.collect()
2. pickle.load(file)
- 函数的功能:将file中的对象序列化读出。
-
参数讲解:
- file:文件名称。
- 代码示例:从临时文件(x_test)中加载数据到内存中
with open('temporary.pickle', mode='rb') as f:
x_test = pickle.load(f)