重新排序csv中的列,但使用Dictionaries



我需要在csv中重新排序列,但我需要从字典中调用每一列。

示例:

示例输入csv文件:

$ cat file.csv
A,B,C,D,E
a1,b1,c1,d1,e1
a2,b2,c2,d2,e2

代码

import csv
with open('file.csv', 'r') as infile, open('reordered.csv', 'a') as outfile:
order_of_headers_should_be = ['A', 'C', 'D', 'E', 'B']
dictionary = {'A':'X1','B':'Y1','C':'U1','D':'T1','E':'K1'}
writer = csv.DictWriter(outfile)
# reorder the header first
writer.writeheader()
for row in csv.DictReader(infile):
# writes the reordered rows to the new file
writer.writerow(row)

输出csv文件需要如下所示:

$ cat reordered.csv
X1,U1,T1,K1,Y1
a1,c1,d1,e1,b1
a2,c2,d2,e2,b2

试图创建一个变量来调用字典

您可以在即将写入行时通过排列键来实现这一点,如下所示:

for row in csv.DictReader(infile):
# writes the reordered rows to the new file
writer.writerow({dictionary[i]: row[i] for i in row})

注意词典理解的用法。

相关内容

  • 没有找到相关文章

最新更新