在Python中对csv文件进行排序

时间:2015-04-09 02:43:13

标签: python sorting csv

我正在尝试按特定列对csv文件进行排序。使用以下代码就足够了:

with open("outfile.csv","rb") as infile,open("outfile.csv","wb") as outfile:
    reader= csv.reader(infile,delimiter=',')
    writer= csv.writer(outfile)
    sort= sorted(reader,key=operator.itemgetter(7), reverse= True)
    for eachline in sort:
        writer.writerow(eachline)

在我的例子中,它会排序,但会以奇怪的方式排序。例如,它会按以下顺序将文件返回给我:3.8,3.7,3.1,21.7,21.6,2.8。

由于这是一个问题,我想解决这个问题;如果它不能,我想在可能的情况下按最大长度排序。

这听起来令人困惑,但这是我遇到的问题。任何帮助都会很棒。

谢谢。

1 个答案:

答案 0 :(得分:2)

尝试排序float值而不是str值:

sort= sorted(reader,key=lambda x:float(x[7]), reverse= True)