You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在文件中查找指定学生ID并删除其所在的整行内容

学生数据行删除实现方案

学生数据存储格式为1234:zakasi:2:1:3,各字段依次为学生ID、姓名、学期、学年、修读课程数,需求为匹配输入的学生ID,删除文件中对应ID的整行数据。

原代码问题点

  • 逻辑冗余:不需要遍历拆分后的所有字段,仅需比对第一个字段即可
  • 匹配不严谨:使用in做包含匹配会导致误删,比如输入12会匹配到ID为123的行
  • 缺少文件写回逻辑:仅读取了文件内容,没有将处理后的数据写入原文件完成删除操作
  • 语法错误:循环内代码缩进错误,且没有手动关闭文件资源

修正后完整代码

# 读取文件内容,with语法会自动关闭文件
with open("students.dat", "r", encoding="utf-8") as infile:
    all_lines = infile.readlines()

target_id = input('enter your id:').strip()
reserve_lines = []
for line in all_lines:
    # 跳过空行
    stripped_line = line.strip()
    if not stripped_line:
        continue
    # 取每行第一个字段做精准匹配
    current_id = stripped_line.split(":")[0]
    if current_id != target_id:
        reserve_lines.append(line)

# 将筛选后的数据写回原文件,完成删除逻辑
with open("students.dat", "w", encoding="utf-8") as outfile:
    outfile.writelines(reserve_lines)

内容的提问来源于stack exchange,提问作者Davey Jones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:06:04