python解除文件占用,如何使用python从.pkl文件中取消对象拾取

这是一个关于Python pickle模块的示例,用于存储和检索学生信息。代码创建了一个Student类,包含姓名、学号、性别、科目和总分等属性,并提供了添加、显示所有学生等操作。使用pickle模块将学生对象序列化存储到'save2.pkl'文件中。当尝试读取文件时,只显示了第一个对象的数据,但没有正确地遍历和打印所有存储的学生信息。
摘要由CSDN通过智能技术生成

我创建了一个学生类。我将每个学生的详细信息存储在一个文件中详细信息问题是在取消拾取它给第一个对象的数据时只有。可以有人说如何检索.pkl文件中的所有对象吗

我的代码是

这是我的密码'''

Created on Apr 20, 2015

@author: murali

'''

import pickle

from pip._vendor.distlib.compat import raw_input

class Student:

def __init__(self, name, roll, sex, subject, total):

"""Return a new Car object."""

self.name = name

self.roll = roll

self.sex = sex

self.subject = subject

self.total = total

print ("*************MENU*******************************")

print ("\t 1.Add New Student")

print ("\t 2.Display all Students")

print ("\t 3.Delete Student")

print ("\t 4.Display all Boys")

print ("\t 5.Display all Girls")

print ("\t 6.Display ascending order of marks")

print ("\t 7.Display alphabetical order of names ")

print ("\t 0.exit")

print ("************************************************")

print ("\n Enter your choice")

ch=int(raw_input())

if ch==1:

print ("Enter Student Details")

print ("Enter Student Name")

n=raw_input()

print ("Enter Student Roll number")

r=raw_input()

print ("Male or Female")

s=raw_input()

print ("Enter Subject ")

su=raw_input()

print ("Enter Student marks ")

t=raw_input()

s=Student(n,r,s,su,t);

with open("save2.pkl",'ab') as outfile:

pickle.dump(s,outfile)

print ("Data saved Successfully")

elif ch==2:

st=[];

f=open("save2.pkl",'rb')

storedlist=pickle.load(f)

print (storedlist)

#st.append(storedlist)

print ("Students are-")

print (storedlist)

#for i in storedlist:

print(storedlist.name)

print(storedlist.roll)

print(storedlist.sex)

print(storedlist.subject)

print(storedlist.total)

f.close();

#s1=None

#with open("save2.pkl",'rb') as infile:

#s1=pickle.load(infile)

#print (s1.name)

#print (s1.roll)

#print (s1.sex)

#print (s1.subject)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值