如何按字母顺序对CSV文件进行排序?

时间:2016-02-25 13:22:02

标签: python csv python-3.x

这是我的代码,它将数据添加到称为studentScores.csv

的CSV文件中
myfile = open("studentScores.csv", "a+")

newRecord = Score, Name, Gender, FormGroup, Percentage

myfile.write(str(newRecord))

myfile.write("\n")

myfile.close()

作为我的任务的一部分,我需要将CSV中的数据字母化,我搜索并搜索解决方案,但我无法找到适合我的解决方案。我对Python很陌生,所以最简单的解决方案将不胜感激。

1 个答案:

答案 0 :(得分:1)

import csv
from operator import itemgetter

with open('studentScores.csv', 'r') as f:
    data = [line for line in csv.reader(f)]

newRecord = [Score, Name, Gender, FormGroup, Percentage]
data.append(newRecord)

data.sort(key=itemgetter(1))  # 1 being the column number

with open('studentScores.csv', 'w') as f:
    csv.writer(f).writerows(data)

首先,它使用csv模块中的函数来正确解析和创建CSV语法。其次,它将所有现有条目读入data,附加新记录,对所有记录进行排序,然后将它们转储回文件。

如果您使用CSV文件中的标题行向列中添加名称,请查看DictReader and DictWriter,这样您就可以按名称处理列,而不是数字(例如,在排序步骤中)