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

Python读取文本文件仅识别最后一行 代码错误如何排查?

代码错误排查及修复方案

核心错误原因

  • 变量覆盖:第一次遍历文件时,m/a/E等变量在循环中被反复赋值,循环结束后仅保留最后一行的解析结果
  • 二次遍历未解析当前行:第二次打开文件遍历的过程中,未对当前读取的行做拆分解析,所有计算都复用了第一次遍历结束后残留的最后一行变量值,因此三行循环得到的计算结果完全重复
  • 冗余操作:无需两次打开读取同一文件,解析和计算可以合并在同一次遍历中完成
  • 潜在风险:手动调用close()关闭文件容易因程序异常退出导致资源未释放,推荐使用with上下文管理器自动处理文件生命周期

修正后可运行代码

calcresults = []
# with上下文管理器会自动关闭文件,无需手动调用close
with open("Numbers.txt", "r") as f:
    for line in f:
        # 去除行尾换行符后按逗号拆分,每个元素去空格后转成整数
        nums = [int(item.strip()) for item in line.strip().split(",")]
        m, a, e, i, o, O, E = nums
        # 逐行计算后存入结果列表
        calcresults.append(m*2)
        calcresults.append(m+a)
        calcresults.append(m+E)

print(calcresults)

# 写入结果到新文件
with open("Newnumbers.txt", "w") as f:
    f.write(str(calcresults))

运行结果说明

运行上述代码后输出的calcresults为[2, 3, 8, 4, 6, 16, 2, 4, 14],符合逐行计算的预期逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:24:03