python - 在 csv 文件 python 中反转行的最佳方法

标签 python csv reverse

我想知道在 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/

相关文章:

python - python中稀疏矩阵的矩阵幂

python - 返回第一个 N 键 :value pairs from dict

python - 使用正则表达式迭代从制表符分隔表创建的 Python 字典

c - 使用 fscanf 读取逗号分隔的 double

c++ - C++中的我的反向列表功能不起作用

django 'url'模板标签错误

python - RuntimeError : CUDA out of memory. 在循环中重新加载模型时出现问题

java - 将文本文件中转储的文本转换为 Csv 和数组

java - 在 JMeter 的 CSV 数据集中,每个线程使用相同的行

c - 仅反转字符串中的某些单词