【问题标题】:How to delete the pickled object from a file?如何从文件中删除腌制对象?
【发布时间】:2018-04-26 10:29:39
【问题描述】:

我在编写程序时遇到了问题。我的程序是创建一个班级学生,其中有一些变量,我的任务是将学生添加到可序列化的文件中,并在用户需要时删除学生。我已经编写了添加学生的代码,但是在删除对象时我被卡住了。如果有人可以帮助我如何从文件中删除腌制对象,我将非常感激?

我的代码是:

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

【问题讨论】:

    标签: python file serialization pickle


    【解决方案1】:

    一种方法是挑选学生名单。然后当你想删除时,你可以从文件中读取,像往常一样删除,例如students.remove(),然后再次腌制。

    【讨论】:

    • 它会删除所需的学生还是所有学生先生? @科林
    • 你需要告诉它要删除哪一个,例如students.remove(studentTwo) 或其他。
    【解决方案2】:

    Pickle 文件不可编辑,而且它们从来都不是这样的。如果您需要跟踪单个腌制项目,请查看the shelve module - 这使您可以将(腌制)对象的外部集合视为带有字符串键的字典。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      相关资源
      最近更新 更多