如何解决如何使用pickle模块的pickle.loads函数一一读取和解散二进制文件中写入的类对象
我正在腌制并将“ student”类的三个对象写入带有Python代码的二进制文件中,如下所示:
import pickle
class student:
def __init__(self):
self.roll=0
self.name=""
return
def readdata(self):
self.roll=int(input("Enter Roll Number : "))
self.name=input("Enter Student Name: ")
return
def showdata(self):
print("Roll Number :",self.roll)
print("Student Name:",self.name)
return
fob=open("./studentrecord.bin","ab+")
for i in range(3):
stuobj=student()
stuobj.readdata()
pickobj=pickle.dumps(stuobj)
fob.write(pickobj)
print("Object pickled and written successfully\n")
fob.seek(0,0)
try:
while fob:
bdata=fob.read()
pdata=pickle.loads(bdata)
pdata.showdata()
except EOFError:
print("Object unpickled successfully\n")
fob.close()
我正在腌制并将三个“ student”类的对象写入二进制文件“ studentrecord.bin”中。但是,在使用“ file_object.read()”和“ pickle.loads()”函数读取和解开这些二进制数据之后,只有第一个对象被重构。同样使用“ file_object.readline()”会引发异常“ UnpicklingError:泡菜数据被截断”。如何通过“ pickle.loads()”函数一个接一个地释放和重构所有这三个对象。需要指出的是,我不想使用“ pickle.load()”功能
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。