【问题标题】:How to keep the specfic format of your text the same when deleting a record from a file从文件中删除记录时如何保持文本的特定格式相同
【发布时间】:2021-12-25 02:21:57
【问题描述】:

我创建了一个学生数据库,其中必须包含学生姓名和身份证、课程等。 按顺序 (id:name:courses:semester:year) 像这样由 (:) 加入

**Orginal text file**
1111:rikki:2:3:1
2222:jackk:2:3:1
3333:sam:3:3:1

但是,当我从文本文件中删除一条记录时,我的格式变得很糟糕并且在同一行 像这样,我希望它像相同的格式 它只删除id(id:name:courses:semester:year) 运行代码后rikki:2:3:1:2222:jackk:2:3:1:3333:sam:3:3:1:

如何让它删除带有学生ID的整行以及删除后保持格式

def remove_student():
infile = open("lol.txt", "r")
f = infile.readlines()
new_list = []
id = input('enter your id:')
for line in f:
    for item in line.split(':'):
        new_list.append(item.strip())
write_file = open("lol.txt",'w')
for lines in new_list:
    if lines != id:
        write_file.write(lines+':')

【问题讨论】:

    标签: python file text


    【解决方案1】:

    只需创建没有违规行的新列表,然后将它们批量写入。另请注意,您必须确保在尝试重写之前关闭文件。

    def remove_student():
        with open("lol.txt", "r") as infile:
            f = infile.readlines()
        id = input('enter your id:')
        new_list = []
        for line in f:
            items = line.split(':')
            if items[0] != id:
                new_list.append(line)
        with open("lol.txt",'w') as write_file:
            write_file.writelines( new_list )
    
    remove_student()
    

    在这种情况下,更好的计划是创建一个 ClassList 类,您可以在其中阅读开头的所有行。然后您可以对内存中的列表进行更改,并定期将整个列表写回。您不需要为每个操作读取/修改/写入。

    【讨论】:

      猜你喜欢
      • 2018-03-11
      • 2021-10-02
      • 1970-01-01
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多