【发布时间】:2018-10-13 08:58:31
【问题描述】:
我有一个 CSV 文件,它按以下顺序自动更新一些数据
A,B,C,D,E,F
4,2,6,4,8,9
D,C,A,B,E,F
6,4,5,8,6,2
E,F,A,C,D
4,2,7,6,5
您会注意到,标题值以不同的顺序出现在不同的行中。有时,标题列值之一也会丢失。
要求是使用一致的标题和低于该标题的所有值对其进行排序。例如
A,B,C,D,E,F
4,2,6,4,8,9
A,B,C,D,E,F
5,8,4,6,6,2
A,B,C,D,E,F
7, ,6,5,4,2
或
A,B,C,D,E,F
4,2,6,4,8,9
5,8,4,6,6,2
7, ,6,5,4,2
我尝试使用以下代码对其进行排序,但是它仅对第一行进行排序,然后按原样打印。
with open('mycsv.csv', 'r') as infile, open('reordered.csv', 'a') as outfile:
fieldnames = ['A','B','C','D','E','F','G']
writer = csv.DictWriter(outfile, fieldnames=fieldnames)
writer.writeheader()
for row in csv.DictReader(infile):
writer.writerow(row)
任何关于如何实现这一点的指示都会有所帮助。谢谢。
【问题讨论】:
标签: python python-2.7 csv