按数字列排序CSV以输出前5名

按数字列排序CSV以输出前5名,csv,Csv,您好,我正在尝试排序一个CSV文件后,我写它,以便我可以显示前5名的分数(优胜者)。我可以打印前5个,但它们不是最高分 def main(): setup() print('Player 1 log in:') user1 = login() print('Player 2 log in: ') setup() user2 = login() print(user1, 'vs', user2) (player1, player1_w

您好,我正在尝试排序一个CSV文件后,我写它,以便我可以显示前5名的分数(优胜者)。我可以打印前5个,但它们不是最高分

def main():
    setup()
    print('Player 1 log in:')
    user1 = login()
    print('Player 2 log in: ')
    setup()
    user2 = login()
    print(user1, 'vs', user2)
    (player1, player1_win), (player2, player2_win) = game(user1, user2)
    if player1_win:
        winner = (user1, player1)
    else:
        winner = (user2, player2)
    print('Well done,', winner[0],' you won with ', winner[1], ' Points')
    with open('Leaderboard.csv', 'a', newline='') as file:  
        wr = csv.writer(file)
        wr.writerow((winner))
    with open('Leaderboard.csv', 'r', newline='') as file:
        score_list = list(csv.reader(file))
        print('\n', 'The top five players are: ', '\n')
        for row in islice(score_list, 5):
            print(*row)
            file.close()

使用CSV文件时,使用熊猫会更容易

import pandas as pd
board = pd.read_csv("Leaderboard.csv")
board.sort_values(by="Score").head()
我强烈建议您查看社区教程:

只需显示您的
排行榜.csv'
的内容即可。还有什么与你的问题无关的吗?谢谢,我会去看看熊猫。我使用了下面的方法,它似乎很有效。panda会减少我的代码行吗?`score_list=list(csv.reader(file))sort=sorted(score_list,key=operator.itemgetter(1),reverse=True)是的,在我的例子中,panda将我的代码库缩短了很多