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

Python写入文本文件时最后一条记录丢失,代码无报错求排查

问题分析与解决

错误原因

  1. 重复打开文件未及时关闭:你在循环内每次都打开grades3.txt,但没有在循环内关闭文件。文件写入依赖缓冲区刷新,未关闭的文件句柄会导致最后一次写入的内容(betty的成绩)滞留在缓冲区,无法写入磁盘。
  2. 关闭文件的语法错误:最后一行file.close缺少括号,正确写法应为file.close(),但即便修正这个,前面重复打开文件的问题依然会引发资源泄漏和数据丢失风险。

正确写法

推荐使用with语句(上下文管理器),它会自动处理文件的打开与关闭,彻底避免缓冲区问题和资源泄漏:

students = ['fred','wilma','barney','betty']
grades = [100,75,80,90]
with open("grades3.txt", "a") as file:
    for name, grade in zip(students, grades):
        entry = f"{name}-{grade}\n"
        file.write(entry)

如果坚持沿用原循环结构,需将文件操作移到循环外,并确保正确关闭文件:

students = ['fred','wilma','barney','betty']
grades = [100,75,80,90]
file = open("grades3.txt", "a")
for i in range(4):
    entry = students[i] + "-" + str(grades[i]) + '\n'
    file.write(entry)
file.close()  # 注意添加括号调用方法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:05:42