python: pickle.load() 引发 EOFError

标签 python python-2.7 pickle

我有一个使用 .txt 格式的 pickle 文件。我想用 python 2.7 加载这个 pickle 文件。大小为 438.5 MB。这就是我加载数据的方式:

def readpickle(path="C:/Python27/Lib/site-packages/xy/"):
with open(path+"filenamereal2.txt","rb") as f:
    model = pickle.load(f)

return model

我得到这个错误

    itemmodelreal=readpickle(path="C:/Users/Lab Komputasi/Documents/estu/") 
Traceback (most recent call last):
File "<ipython-input-33-265e46f74915>", line 1, in <module>
    itemmodelreal=readpickle(path="C:/Users/Lab Komputasi/Documents/estu/")

  File "<ipython-input-31-fbd3e8b9e043>", line 3, in readpickle
    model = pickle.load(f)

  File "C:\Users\Lab Komputasi\Anaconda2\lib\pickle.py", line 1384, in load
    return Unpickler(file).load()

  File "C:\Users\Lab Komputasi\Anaconda2\lib\pickle.py", line 864, in load
    dispatch[key](self)

  File "C:\Users\Lab Komputasi\Anaconda2\lib\pickle.py", line 886, in load_eof
    raise EOFError

EOFError

这是我用来编写 pickle 的代码:

 with open("filenamereal3.txt", "wb") as f:
    pickle.dump(result, f)
f.close()

我已经使用读取二进制('rb')加载和写入二进制('wb')写入,但它仍然有那个错误。 你知道为什么它仍然是错误的吗?我该如何解决这个错误?

谢谢你的帮助....

最佳答案

我在加载以最高协议(protocol)转储的大文件时遇到了同样的错误。

这似乎是 pickle 库的一个错误。我改用 cPickle 解决了它。

import cPickle as pickle

关于python: pickle.load() 引发 EOFError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37451014/

相关文章:

python - 如何在数值模拟中使用 jit

python - 深度实验室 : InvalidArgumentError: NodeDef mentions attr 'dilations' not in Op<name=Conv2D;

java - 如何将java时区id转换为python可接受的id

python - 了解 python 2.7 email.feedparser Feedparser __init__ 函数

python - 将内存中的变量保存到文件中

python - 命名约定 : What does the 'm' mean in libpython3. 5m.dylib

python - 将Elastic集群数据读入python数据框

python - 使用 python socketserver 如何将变量传递给处理程序类的构造函数

python - 描述文件的 python pickleable 对象的设计

python - 使用双反斜杠时获取用户路径 (Python)