use*_*542 4 python file-io pickle
我有一个腌制在磁盘上的字典,大小约为780 Megs(在磁盘上).但是,当我将该字典加载到内存中时,其大小意外膨胀到大约6千兆字节.无论如何都要保持内存中实际文件大小的大小,(我的意思是如果它在内存中需要大约1演出,但是6演出是一种奇怪的行为).pickle模块有问题,还是应该以其他格式保存字典?
这是我加载文件的方式:
import pickle
with open('py_dict.pickle', 'rb') as file:
py_dict = pickle.load(file)
Run Code Online (Sandbox Code Playgroud)
任何想法,帮助,将不胜感激.
如果您pickle只是用于在字典中存储大值,或者使用非常多的键,则应考虑使用shelve.
import shelve
s=shelve.open('shelve.bin')
s['a']='value'
Run Code Online (Sandbox Code Playgroud)
这仅在需要时加载每个键/值,其余的保留在磁盘上