我在做节目时遇到了问题。我的程序是创建一个班级学生,并且有一些变量,我的任务是将学生添加到一个可序列化的文件中,并在用户想要的时候删除学生。我已经编写了添加学生的代码但是在删除对象时我被卡住了。如果有人能帮助我如何从文件中删除腌制对象,我将非常感谢?
我的代码是:
import pickle
n = int(input("Enter number of students you want to enter:"))
for i in range(0,n):
name = input("Enter student name: ")
roll = input("Enter roll number: ")
sex = input("Enter sex: ")
sub = input("Enter subject: ")
tot = input("Enter total: ")
s = Student(name,roll,sex,sub,tot)
infile = open("pb.txt","ab")
pickle.dump(s,infile)
infile.close()
我的学生班是:
class Student:
def __init__(self,name,roll,sex,sub,tot):
self.name = name
self.roll = roll
self.sex = sex
self.sub = sub
self.tot = tot
答案 0 :(得分:1)
一种方法可能是挑选学生名单。然后,当您要删除时,您可以从文件中读取,正常删除,例如students.remove()
,然后再次腌制。
答案 1 :(得分:0)
Pickle文件不可编辑,而且它们从来就不是。如果你需要跟踪单个被腌制的项目,请查看the shelve
module - 这可以让你处理(腌制)对象的外部集合,比如带字符串键的字典。