EOFError退出输入Python

时间:2017-08-04 19:50:16

标签: python save pickle

我正在尝试使用pickle为我的游戏创建一个保存文件,但当我尝试提交我的字典,然后重新获取该信息时,但它不起作用。

import pickle
data = {'health':100, 'gold':1560, 'name': 'mariano'}
with open('s.txt','wb') as f:
    pickle.dump(data, f, protocol = 2)

with open('s.txt','rb') as f:
    data = pickle.load(f)

然后当我运行该代码时,它给了我这个错误

EOFError: Ran out of input

2 个答案:

答案 0 :(得分:3)

我弄清楚出了什么问题,或者至少我是如何解决问题的。您试图使用已经被腌制的文件,并且由于它运行时出现了错误,因此您需要更改文件的名称。

答案 1 :(得分:0)

我遇到了类似的问题。我的代码如下:

h = open("my_file.pkl", "wb")
pickle.dump(my_data, h)

那是在Jupyter笔记本中的一个单元内。稍后尝试加载my_file.pkl时,我会得到EOFError: Ran out of input

我相信错误的原因是文件处理程序h没有关闭,这意味着文件没有正确保存。将其更改为此解决了问题:

with open("my_file.pkl", "wb") as h:
    pickle.dump(my_data, h)