Python文件重写故障:轨道赛车最佳圈速无法写入文件
问题排查与解决方案
核心问题原因
你这段代码无法修改文件的关键问题出在文件打开模式上:
- 你用了
'a'(追加模式)打开文件,该模式默认将文件指针定位在文件末尾。虽然调用了truncate(0)清空文件,但追加模式下的写入行为在部分系统环境中可能存在不一致,导致写入操作不生效。 - 另外要先确认
int(self.firstline) < int(self.best[self.i-1])这个条件是否真的成立——如果条件不满足,这段代码根本不会执行,自然不会修改文件。可以在条件前加打印语句验证两个值:print(f"firstline: {self.firstline}, best: {self.best[self.i-1]}")
修复方案
直接改用'w'(写入模式)打开文件,该模式会自动清空原有文件内容并写入新数据,不需要手动调用truncate(0)。同时推荐用with语句管理文件,自动处理文件关闭,避免资源泄漏:
if int(self.firstline) < int(self.best[self.i-1]): print('doing') with open("AbsBest.txt", 'w') as file: file.write(str(self.best[self.i-1]))
额外排查点
- 检查程序对
AbsBest.txt所在目录是否有写入权限,若权限不足也会导致文件无法修改。 - 确认
self.best[self.i-1]的取值是否正确,避免因索引错误或值为空导致写入无效内容。
内容的提问来源于stack exchange,提问作者Noah Robb
相关产品推荐
相关产品推荐

