问题描述
我正在腌制并将“ 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 (将#修改为@)