基于这个comment和参考的文档,Python 3.4+中的Pickle 4.0+应该能够Pickle大于4gb的字节对象。
但是,在Mac OS X 10.10.4上使用python 3.4.3或python 3.5.0b2时,当我尝试pickle大字节数组时出现错误:
>>> import pickle
>>> x = bytearray(8 * 1000 * 1000 * 1000)
>>> fp = open("x.dat", "wb")
>>> pickle.dump(x, fp, protocol = 4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument
我的代码中有错误吗?还是我误解了文档?
这里是完整的解决方法,尽管pickle.load似乎不再试图转储一个大文件(我在Python 3.5.2上),所以严格地说,只有pickle.dumps需要这样才能正常工作。
相关问题 更多 >
编程相关推荐