首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python EOFerror

Python EOFerror
EN

Stack Overflow用户
提问于 2017-04-27 01:25:18
回答 2查看 329关注 0票数 0

使用python 3.6.1并得到以下错误消息:

代码语言:javascript
复制
Traceback (most recent call last):
  File "E:\Computing\CAU\task 3.py", line 72, in <module>
    UniqueWords = pickle.load(MyFile)
EOFError: Ran out of input

关于我代码的这一部分:

代码语言:javascript
复制
`MyFile = open('SentencesCompression.txt', 'rb')
 UniqueWords = pickle.load(MyFile)
 UniqueWords2 = pickle.load(MyFile)
 WordPositions = pickle.load(MyFile)
 WordPositions2 = pickle.load(MyFile)`

可以看出,我正在尝试加载一些酸洗过的数据。

我希望我已经给出了足够的信息。

整个代码的粘贴板:https://pastebin.com/4uEA8PcY

EN

回答 2

Stack Overflow用户

发布于 2017-04-27 01:29:08

您已经读取了打开的文件,位置指针位于文件的末尾。Pickle无法加载任何内容,因为没有要加载的内容。

如果您确实需要加载同一文件四次,请尝试以下操作:

代码语言:javascript
复制
with open('SentencesCompression.txt', 'rb') as MyFile:
  UniqueWords = pickle.load(MyFile)
with open('SentencesCompression.txt', 'rb') as MyFile:
  UniqueWords2 = pickle.load(MyFile)
with open('SentencesCompression.txt', 'rb') as MyFile:
  WordPositions = pickle.load(MyFile)
with open('SentencesCompression.txt', 'rb') as MyFile:
  WordPositions2 = pickle.load(MyFile)

Operator with用于确保文件正确关闭。

票数 0
EN

Stack Overflow用户

发布于 2017-04-27 01:38:59

您误解了pickle.load()的工作原理。

你可能想要更像这样的东西:

代码语言:javascript
复制
data = pickle.load(MyFile)
UniqueWords = data[0]
UniqueWords2 = data[1]
# ... etc.

假设您(使用pickle.dump())酸洗的数据是一个列表。如果对字典进行了酸洗,则需要解包键/值对。

学习加载pickled (或JSON)数据的最好方法是阅读将其转储出去的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43640813

复制
相关文章

相似问题

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