首页 > 解决方案 > 如何阻止程序覆盖现有的文本文件

问题描述

我正在制作一个游戏,其中 2 名玩家掷 2 个骰子 5 次,然后将分数保存在一个文件中,并在游戏结束后打印保存分数中的前 5 个分数。我正在尝试打印前 5 个分数,但我的程序会清除现有文件中的所有内容,并且只会打印刚刚玩过的游戏的分数。

file = open("Leaderboard.txt",'w')
file.write("Name        " + "Score" + "\n") #Heading
file.close()

file = open("Leaderboard.txt",'a')
file.write((player1) + ":" + (str(score1)) + "\n") #Stores Player 1's Name and Score
file.write((player2) + ":" + (str(score2)) + "\n") #Stores Player 2's Name and Score
file.close()
 
 
file = open("Leaderboard.txt",'r')
readthefile = file.readlines()
sortedData = sorted(readthefile, reverse = True)  #Sorting the Data


print(' ')
print("==============================")
print("    Top 5 Winning Scores")
print(' ')

for line in range (5):  #Outputs the Top 5 Players
    print(str(line + 1) + "\t" + str(sortedData[line]))

这就是它打印的内容

==============================
    Top 5 Winning Scores
 
1   vedant:43
2   saiyen:37
3   Name        Score

它只会打印本场比赛的比分,不会打印之前比赛的比分。我得到的错误是 IndexError: list index out of range

帮助将不胜感激!

标签: pythonfile-handling

解决方案


推荐阅读