在csv文件中排序整数 - python

时间:2015-03-21 10:13:02

标签: python sorting csv

我有一个csv文件,如下所示:

Tom,10
Jack,10
Alice,10
Ben,9

我需要能够从第二列按从最高到最低排序。 我尝试了以下代码:

import csv

file = open("bestscores.csv","r")
reader = csv.reader(file, delimiter = ' ')

sort = sorted(reader,key=lambda x: int(x[1]), reverse=True)
print(sort)

这会导致以下错误:

ValueError: invalid literal for int() with base 10: 'Tom,10'

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您使用了错误的分隔符并对错误的索引进行了排序。这应该适合你:

import csv

with open("bestscores.csv","r") as fh
  reader = csv.reader(fh, delimiter = ',')

  sort = sorted(reader, key=lambda x: int(x[1]), reverse=True)
  print(sort)

答案 1 :(得分:1)

你也可以这样做,

with open('file') as f:
    print(''.join(sorted(f, key=lambda x: int(x.split(',')[1]), reverse=True)))