我想知道在 python 2.7 中反转大型 csv 文件(+50000 行)的行并重写它,避免第一行的最佳方法。
input:
A;B;C
1;2;3
4;5;6
output
A;B;C
4;5;6
1;2;3
我需要知道如何在 python 2.7 中高效地完成它。
谢谢大家
门乔佩斯
最佳答案
使用csv
模块读取csv 文件并使用csv
模块打开输出。现在您正在使用 list
作为行。
使用 next
按原样编写标题行。现在第一行已被消耗,将其余数据转换为 list
以完全读取它并在反向列表上应用 writerows
:
import csv
with open("in.csv") as fr, open("out.csv","wb") as fw:
cr = csv.reader(fr,delimiter=";")
cw = csv.writer(fw,delimiter=";")
cw.writerow(next(cr)) # write title as-is
cw.writerows(reversed(list(cr)))
writerows
是最快的方法,因为它不涉及 python 循环。
Python 3 用户必须使用 open("out.csv","w",newline="")
打开输出文件。
关于python - 在 csv 文件 python 中反转行的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44326790/