python - 为什么我不能替换 .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 多行),这是唯一真正让我难过的事情。任何帮助将不胜感激。
解决方案
你把它复杂化了:
with open("best_score.txt", "w") as f:
f.write(best)
这将用新文本覆盖文本。
推荐阅读
- java - 我需要做一个加入购物车的功能(饮料应用程序)
- excel - 如果在 D 列或 E 列中找到标记/突出显示,则从 C 列的每个单元格中搜索 D 列的每个单元格中的字母数字值
- html - 如何使画布标签的宽度与窗口的一半一样大?
- json - 如何从响应中获取令牌?
- c++ - 组合两个对列表
- jquery - 将两个处理程序合二为一
- android - 构建失败并出现 D8 错误
- sql-server - 从工资 > N 的多个连接表中查找前 2 个最高工资
- elasticsearch - Elasticsearch - 找到每个特征的最小值和最大值
- google-apps-script - 您无权执行该操作。请请求此项目的所有者授予您访问权限