python pickle文件大小_无法在Python中加载以前转储的大大小pickle文件

我使用cPickle和协议版本2转储一些计算结果。代码如下:> f = open('foo.pck', 'w')

> cPickle.dump(var, f, protocol=2)

> f.close()

变量var是长度为2的元组。var[0]的类型是一个列表,而var[1]是一个努比·恩达雷. 在

上面的代码段成功地生成了一个大文件(~1.7G)。在

但是,当我试图从食品.pck,我得到以下错误。在

^{pr2}$

加载代码如下所示。在> f= open('foo.pck', 'r')

> v = cPickle.load(f)

我还尝试使用pickle(而不是cPickle)加载变量,但是得到了类似的错误消息,如下所示。在ValueError Traceback (most recent call last)

/home/user_account/tmp/ in ()

----> 1 v = pickle.load(f)

/usr/lib64/python2.6/pickle.pyc in load(file)

1368

1369 def load(file):

-> 1370 return Unpickler(file).load()

1371

1372 def loads(str):

/usr/lib64/python2.6/pickle.pyc in load(self)

856 while 1:

857 key = read(1)

--> 858 dispatch[key](self)

859 except _Stop, stopinst:

860 return stopinst.value

/usr/lib64/python2.6/pickle.pyc in load_build(self)

1215 setstate = getattr(inst, "__setstate__", None)

1216 if setstate:

-> 1217 setstate(state)

1218 return

1219 slotstate = None

ValueError: buffer size does not match array size

我试着用同样的代码段来处理更小的数据,效果很好。所以我最好的猜测是我达到了pickle(或cPickle)的加载大小限制。然而,奇怪的是,成功地转储(使用大尺寸变量)但未能加载。在

如果这确实是一个加载大小限制问题,我应该如何绕过它?如果没有,问题的可能原因是什么?在

如有任何建议,我们将不胜感激。谢谢!在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值