首页 > 解决方案 > 为什么我不能替换 .txt 文件中的文本

问题描述

现在,我正在制作一个简单的游戏,并试图在游戏打开的时间记录一个高分并保存它。我有一个文件,best_score.txt可以在打开时检索高分,如果score == best在整个游戏过程中,我希望将当前分数保存在该文件中。唯一的文本best_score.txt是分数。

目前,文件是这样打开和读取的:

with open("best_score.txt", "r") as f:
    best = int(f.read())
    old_best = best

从文件中提取高分(best),我保存了高分(old_best)的第二个副本以备后用。

在游戏过程中,如果有人击败了他们的最高分,best将被设置为等于他们的分数,因为它会上升。

一旦他们重新启动或关闭游戏,如果score == best此代码运行:

with open("best_score.txt", "w") as f:
    f.write(f.replace(str(old_best), str(best)))

这旨在搜索游戏开始时的原始高分(old_best)并将其替换为新的高分。现在,当我运行游戏并击败高分时,新的分数不会被记录下来。文本文件只是变成空的,里面根本没有文本,或者它仍然是以前的高分。我做错了什么,或者我可以采取什么其他方法将分数保存在文本文件中?

我知道这里类似的问题以及如何在其他网站编写文本的解释,但我就是无法让我的工作。这是我在编程中的第一个“大”项目(100 多行),这是唯一真正让我难过的事情。任何帮助将不胜感激。

标签: pythonfiletextreplace

解决方案


你把它复杂化了:

with open("best_score.txt", "w") as f:
    f.write(best)

这将用新文本覆盖文本。


推荐阅读