python: pickle.load() 引发 EOFError
python: pickle.load() raising EOFError
我有一个 .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()
我已经用read binary('rb')加载和write binary('wb')写了,但是还是有那个错误。
你知道为什么它仍然是错误的吗?我该如何解决这个错误?
感谢您的帮助....
要加载数据,您不想读取数据 ("rb") 而不是写入数据 ("wb") 吗?
加载数据应如下所示:
with open("C:/Users/Lab Komputasi/Documents/estu/filenamereal1.txt", "rb") as f:
data = pickle.load(f)
此外,使用 f.close() 是不必要的,因为您正在使用 with/as 子句。
我在加载以最高协议转储的大文件时遇到了同样的错误。
这似乎是 pickle 库的一个错误。我改用 cPickle 解决了它。
import cPickle as pickle
确保您的 pickle 文件不为空,例如如果你 pickle 一个未初始化的变量。
我遇到了同样的问题。我正在从 .txt 文件中读取 class 个对象。这似乎对我有用:
try:
<my code>
except EOFError:
break
我有一个 .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()
我已经用read binary('rb')加载和write binary('wb')写了,但是还是有那个错误。 你知道为什么它仍然是错误的吗?我该如何解决这个错误?
感谢您的帮助....
要加载数据,您不想读取数据 ("rb") 而不是写入数据 ("wb") 吗?
加载数据应如下所示:
with open("C:/Users/Lab Komputasi/Documents/estu/filenamereal1.txt", "rb") as f:
data = pickle.load(f)
此外,使用 f.close() 是不必要的,因为您正在使用 with/as 子句。
我在加载以最高协议转储的大文件时遇到了同样的错误。
这似乎是 pickle 库的一个错误。我改用 cPickle 解决了它。
import cPickle as pickle
确保您的 pickle 文件不为空,例如如果你 pickle 一个未初始化的变量。
我遇到了同样的问题。我正在从 .txt 文件中读取 class 个对象。这似乎对我有用:
try:
<my code>
except EOFError:
break