环境:Windows,Python 3.4.1,64位版本。
我尝试像这样使用pickle和gzip保存数据:
with gzip.open(filename, 'rb') as f:
pickle.dump(data,f)
数据可以成功转储而不使用gzip,但是使用gzip时会引发异常,如下所示:
File "C:\Python34\lib\gzip.py", line 344, in write
self.fileobj.write( self.compress.compress(data) )
OverflowError: Size does not fit in an unsigned int
我追溯了代码,发现gzip实际上是建立在zlib之上的。在通过谷歌搜索这个问题后,我找到了这个页面 http://bugs.python.org/file32715/zlib_64bit-4.patch。似乎对无符号整数类型有长度限制。
所以,我的问题是,有没有什么方法可以弥补这个bug或绕过它?