使用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)`可以看出,我正在尝试加载一些酸洗过的数据。
我希望我已经给出了足够的信息。
整个代码的粘贴板:https://pastebin.com/4uEA8PcY
发布于 2017-04-27 01:29:08
您已经读取了打开的文件,位置指针位于文件的末尾。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)Operator with用于确保文件正确关闭。
发布于 2017-04-27 01:38:59
您误解了pickle.load()的工作原理。
你可能想要更像这样的东西:
data = pickle.load(MyFile)
UniqueWords = data[0]
UniqueWords2 = data[1]
# ... etc.假设您(使用pickle.dump())酸洗的数据是一个列表。如果对字典进行了酸洗,则需要解包键/值对。
学习加载pickled (或JSON)数据的最好方法是阅读将其转储出去的代码。
https://stackoverflow.com/questions/43640813
复制相似问题