使用Python更新TXT文件数值:避免重复执行时重复写入
解决方案
问题出在你用了文件追加模式('a'),每次运行都会往文件末尾加新内容。要实现每次运行覆盖更新文件,只需把打开模式改成写入模式('w'),同时优化文件操作效率(别在循环里反复打开关闭文件):
修改后的代码(基础优化版)
Start = 0 End = 11 Stepsize = 1 filename = "All_values.txt" # 用'w'模式打开,会清空原有内容再写入新内容 with open(filename, 'w') as f: for i in range(Start, End, Stepsize): f.write(f"{i}\n")
更高效的写法(一次性写入)
如果生成的内容量级不大,可以一次性拼接好所有内容再写入,减少IO操作次数:
Start = 0 End = 11 Stepsize = 1 filename = "All_values.txt" # 生成所有要写入的内容,用换行符连接 content = '\n'.join(str(i) for i in range(Start, End, Stepsize)) + '\n' with open(filename, 'w') as f: f.write(content)
关键说明
'w'模式:打开文件时会直接清空原有内容,再写入本次运行生成的新内容,完全满足你"每次运行更新文件"的需求。- 把文件打开操作放在循环外:避免每次循环都执行打开/关闭文件的冗余操作,提升代码运行效率。
- 两种写法运行后,无论你执行多少次,文件里只会保留一次生成的
0到10的数值。
内容的提问来源于stack exchange,提问作者KeplerNick123
相关产品推荐
相关产品推荐

