Python-EOFerror

Python-EOFerror,python,eoferror,Python,Eoferror,使用python 3.6.1并获取以下错误消息: 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 可以看出,我正在尝试加载一些经过pickle处理的数据 我希望我已经提供了足够的信息 整个代码的粘贴栏:您已经读取了打开

使用python 3.6.1并获取以下错误消息:

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
可以看出,我正在尝试加载一些经过pickle处理的数据

我希望我已经提供了足够的信息


整个代码的粘贴栏:

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

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

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)

运算符
with
用于确保文件正确关闭。

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

您可能想要的东西更像:

data = pickle.load(MyFile)
UniqueWords = data[0]
UniqueWords2 = data[1]
# ... etc.
假设(使用
pickle.dump()
)pickle的数据是一个列表。如果对字典进行pickle处理,则需要解压缩键/值对


学习加载pickle(或JSON)数据的最佳方法是读取转储它的代码。

感谢您的建议,但错误仍然存在(如果可能),请发布创建此sentenceCompression.txt pickle文件的最小代码片段。如果失败,请从
>
解释器提示符执行
data=pickle.load(MyFile)
,并使用
dir()
和其他内省功能来探索数据结构,以便找出如何提取要使用的部分。嗨,Jim,我只是想删除线程,因为我已经解决了这个问题。我检查了代码正在写入的文件,由于某种原因它是空的。我将脚本保存移到另一个文件夹,并再次执行压缩过程。它再次开始写,当我运行代码时,错误停止了。感谢您的帮助最好是将有用的答案向上投票,这样其他遇到类似问题的人也会发现这一点。压缩或加载带有单词“压缩”的文件答案加载加载您压缩了多少个句子?2或3 3回溯(最后一次调用):文件“E:\Computing\CAU\task 3.py”,第74行,UniqueWords=pickle.load(MyFile)EOFError:输入用完>>>错误仍然存在,但感谢您的努力。我认为这与pickle加载过程的UniqueWords2列表有关
data = pickle.load(MyFile)
UniqueWords = data[0]
UniqueWords2 = data[1]
# ... etc.