小编典典

Python-重新排序CSV中的列

python

我有一堆具有相同列但顺序不同的csv文件。我们正在尝试使用SQL * Plus上载它们,但是我们需要具有固定列排列的列。

所需订单:ABCDEF

csv文件:ACDEB(有时列不在csv中,因为它不可用)

用python可以实现吗?我们正在使用Access + Macros来做…但这太浪费时间了

PS。对不起,如果有人对我的英语能力感到沮丧。


阅读 219

收藏
2020-12-20

共1个答案

小编典典

您可以使用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:
    # output dict needs a list for new column ordering
    fieldnames = ['A', 'C', 'D', 'E', 'B']
    writer = csv.DictWriter(outfile, fieldnames=fieldnames)
    # reorder the header first
    writer.writeheader()
    for row in csv.DictReader(infile):
        # writes the reordered rows to the new file
        writer.writerow(row)

输出

$ cat reordered.csv
A,C,D,E,B
a1,c1,d1,e1,b1
a2,c2,d2,e2,b2
2020-12-20