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

Python使用f.write写入文件仅保留最后一行内容的问题该如何解决?

问题根因
  • 单变量重复赋值覆盖:你在循环里每次都对rezultat变量直接赋值,前一行的计算结果会被后一行的结果覆盖,循环结束后rezultat仅存储最后一行的计算结果
  • 未处理行尾换行符:用readlines()读取的每一行末尾默认携带换行符\n,直接拼接字符串会导致格式错乱
  • 单次写入仅存单条结果:最终写入文件时只写入了最后一次的rezultat值,没有把所有行的计算结果汇总写入
修复后可运行代码
with open('izrazi.txt','w') as f: 
    f.write("4-1\n9-3") 

# 用列表存储每一行的计算结果,避免覆盖
result_list = []
with open('izrazi.txt','r') as f:
    lines = f.readlines()
    for l in lines:
        # 去除行首尾的空白字符(换行符、多余空格等)
        line = l.strip()
        if line[1] == "-":
            rezultat = f"{line} = {str(int(line[0]) - int(line[2]))}"
            result_list.append(rezultat)
        
with open("izlaz.txt", "w") as f2:
    # 把所有结果用换行拼接后一次性写入
    f2.write('\n'.join(result_list))
输出文件效果

运行后izlaz.txt内容为:

4-1 = 3
9-3 = 6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:45:07