Python .CSV 排行榜写入 - 随机得分不保存

Python .CSV Leaderboard Write - Score Randomly Doesn't Save

您好,我在 Python 的排行榜上遇到了一个奇怪的问题。我将玩家得分变量写入文件,这通常有效,但有时它只写入 0 而不是他们得分的数字。这只是偶尔发生,但需要修复。我认为这与设置 playerscore = 0 之前使用的延迟有关,但我不确定要更改什么来修复它。下面的代码。

 with open('Leaderboard.csv', 'a', newline='') as filepath:

                        a = csv.writer(filepath, delimiter=',')

                        data = [[PlayerScore, player_name]]

                        a.writerows(data)

                f = open('Leaderboard.csv')

                csv_f = csv.reader(f)
                name = []
                for row in csv_f:
                        name.append(row)

                f.close()
                print(PlayerScore)
                # set PlayerScore to 0
                pygame.time.delay(100)
                PlayerScore = 0

试试这个:

import csv


PlayerScore = 25
player_name = 'Fry'

# Append to the csv.
with open('Leaderboard.csv', 'a', newline='') as file:
    writer = csv.writer(file)
    writer.writerow((PlayerScore, player_name))

# Read the csv.
with open('Leaderboard.csv', 'r', newline='') as file:
    score_list = list(csv.reader(file))
    for row in score_list:
        print(row)

# Afterwards reset the score and name if you have to.
PlayerScore = 0
player_name = ''

如果要正确排序,请不要忘记将分数从字符串转换为整数(或浮点数),否则它们将按字典顺序排序。