首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EOFError使用pickle.load()

EOFError使用pickle.load()
EN

Stack Overflow用户
提问于 2015-07-29 16:55:36
回答 1查看 6.2K关注 0票数 1

我有以下代码:

代码语言:javascript
复制
pos = [
    [('the', 'DT'), ('rabbit', 'NN'), ... ],
    [('he', 'PRP'), ('jokes', 'VBZ'), ... ],
    ...
]
with open(filename, 'w') as f:
    pickle.dump(pos, f)

然后我要加载内容:

代码语言:javascript
复制
with open(filename, 'r') as f:
    pos = [pickle.load(f) for i in range(the_length)]

但我得到了一个例外:

代码语言:javascript
复制
...

  File "C:\Anaconda\lib\pickle.py", line 1378, in load
    return Unpickler(file).load()

  File "C:\Anaconda\lib\pickle.py", line 858, in load
    dispatch[key](self)

  File "C:\Anaconda\lib\pickle.py", line 880, in load_eof
    raise EOFError

EOFError

实际上,pos中的第一个列表是正确加载的([('the', 'DT'), ('rabbit', 'NN'), ... ]),但异常就发生在后面。如果我打开文件,确实有问题:所有的句子都被存储,但是文件的结尾是这样的长列表:

代码语言:javascript
复制
aa(lp269
a(lp270
a(lp271
a(lp272
a(lp273
a(lp274
a(lp275
...
a(lp3531
a.

(我试图用rbwb而不是rw打开文件,但它没有解决任何问题)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-29 17:00:00

如果您只有一个dump调用,那么您应该只有一个load调用。

代码语言:javascript
复制
with open(filename, 'r') as f:
    pos = pickle.load(f)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31706645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档