我有一本 pickle 在磁盘上的字典,大小约为 780 兆(磁盘上)。然而,当我将该词典加载到内存中时,它的大小意外地膨胀到大约 6 GB。无论如何也要将大小保持在内存中的实际文件大小附近,(我的意思是如果它在内存中占用大约 1 gig 就没问题,但是 6 gig 是一种奇怪的行为)。 pickle 模块是否有问题,或者我应该将字典保存为其他格式?
这是我加载文件的方式:
import pickle
with open('py_dict.pickle', 'rb') as file:
py_dict = pickle.load(file)
任何想法,帮助,将不胜感激。
最佳答案
如果您使用 pickle
只是为了在字典中存储大值或大量键,您应该考虑使用 shelve
相反。
import shelve
s=shelve.open('shelve.bin')
s['a']='value'
这仅在需要时加载每个键/值,将其余的保留在磁盘上
关于从磁盘加载的 Python 字典占用太多内存空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23660717/