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
相关产品推荐
相关产品推荐

