我创建了一些数据并将其存储了几次,如下所示:
with open('filename', 'a') as f:
pickle.dump(data, f)
每次文件大小增加,但是当我打开文件时
with open('filename', 'rb') as f:
x = pickle.load(f)
我只能看到上次的数据。
如何正确读取文件?
Pickle 一次序列化一个对象,并读回一个对象 -
腌制后的数据按顺序记录在文件中。
如果你只是这样做pickle.load
您应该读取序列化到文件中的第一个对象(而不是您编写的最后一个对象)。
反序列化第一个对象后,文件指针位于开头
下一个对象的 - 如果你简单地调用pickle.load
再次,它将读取下一个对象 - 这样做直到文件末尾。
objects = []
with (open("myfile", "rb")) as openfile:
while True:
try:
objects.append(pickle.load(openfile))
except EOFError:
break
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)