首页 > 解决方案 > How to print first 5 lines of a sorted csv file?

问题描述

In the code below, I need to print out the first 5 lines from the CSV file "winners.csv" and I don't know how to do it. I just know that lines 4-5 will cause all lines in the csv file to print.

The code in question:

wins = open("winners.csv", "r")
csv1 = csv.reader(wins, delimiter=",")
sort = sorted(csv1,key=operator.itemgetter(1),reverse=True)
for eachline in sort:
    print(eachline)
wins.close()

标签: pythoncsvsorting

解决方案


不是循环遍历 中的所有元素,而是遍历sort前五个元素。

wins = open("winners.csv", "r")
csv1 = csv.reader(wins, delimiter=",")
sort = sorted(csv1,key=operator.itemgetter(1),reverse=True)
for eachline in sort[:5]: # <----- note how sort is changed to sort[:5]
    print(eachline)
wins.close()

与您的问题没有直接关系,只是提到一个好的做法。建议使用with. 异常处理,读取完成后关闭文件等将为您完成,您的代码将更清晰。

with open("winners.csv", "r") as wins:
    csv1 = csv.reader(wins, delimiter=",")
    sort = sorted(csv1,key=operator.itemgetter(1),reverse=True)
    for eachline in sort[:5]:
        print(eachline)

推荐阅读