排序数据,忽略python中csv中的标头

时间:2018-10-29 13:37:46

标签: python

我写了一个代码对前5列中的数据进行排序,这是一个csv文件(管道分隔符)。

import csv
import operator
with open('DDD_Strips_by_Sub_Channel_final.csv',mode='r') as f, 
open('DDD_Strips_by_Sub_Channel_sorted.csv','w') as final:
    writer = csv.writer(final, delimiter='|')
    reader = csv.reader(f, delimiter='|')
    header=next(reader,None)
    next(reader)
    sorted1 = sorted(reader, key=lambda row: (row[0],row[1],row[2],row[3],row[4]))
    if header:
        writer.writerow(header)
    for row in sorted1:
       writer.writerow(row)

它对数据进行了正确的排序,但是通过在每行之间插入新行来生成输出文件

enter image description here

任何人都可以帮助获得正确的输出而无需多余的行。

1 个答案:

答案 0 :(得分:1)

如果您使用的是var count = 4 * 1000 * 1000; var map = new Map(); for (var i=0; i < count; ++i) { map.set("" + i + "ABCDEF"[i%6], [ Math.random(), Math.random() ]); } //console.log(map); console.log("done!");,则必须使用python 2.x模式而不是wb打开文件。它将变成w

将行更改为此,

open('DDD_Strips_by_Sub_Channel_sorted.csv','wb')

如果您使用的是with open('DDD_Strips_by_Sub_Channel_final.csv',mode='rb') as f, open('DDD_Strips_by_Sub_Channel_sorted.csv','wb') as final: ,则需要使用python 3.x参数newline

希望能解决您的问题。