使用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
关于我的代码的这一部分:
`MyFile = open('SentencesCompression.txt', 'rb')
UniqueWords = pickle.load(MyFile)
UniqueWords2 = pickle.load(MyFile)
WordPositions = pickle.load(MyFile)
WordPositions2 = pickle.load(MyFile)`
可以看出,我正在尝试加载一些腌制数据。
我希望我已经提供了足够的信息。
整个代码的Pastebin:https://pastebin.com/4uEA8PcY
答案 0 :(得分:0)
您已经读过打开的文件,位置指针位于文件的末尾。 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
用于确保文件正确关闭。
答案 1 :(得分:0)
你误解了pickle.load()
应该如何运作。
你可能想要更多的东西:
data = pickle.load(MyFile)
UniqueWords = data[0]
UniqueWords2 = data[1]
# ... etc.
假设您挑选的数据(pickle.dump()
)是一个列表。如果腌制字典,那么你需要解压缩键/值对。
了解加载pickle(或JSON)数据的最佳方法是读取将其转储出来的代码。