3
環境:Windows,Python 3.4.1,64位版本。gzip引發溢出錯誤:大小不符合unsigned int
我試圖將數據與泡菜和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。似乎有一個unsigned int類型的長度限制是強加的。
所以,我的問題是,有什麼辦法彌補這個錯誤或傳遞它?
除了執行流式壓縮? –
數據有多大以及架構上無符號整數的大小是多少? –
在Python中查看C代碼,這是一個相當差,有點懶惰的反應。代碼應該反饋給輸入的UINT_MAX部分,直到它被全部使用。 –