有没有办法将标题行添加到CSV而不将CSV加载到python的内存中?我有一个18GB的CSV,我想添加一个标题,我看到的所有方法都需要将CSV加载到内存中,这显然是不可行的.
您需要重写整个文件.最简单的是不使用python
echo 'col1, col2, col2,... ' > out.csv
cat in.csv >> out.csv
Run Code Online (Sandbox Code Playgroud)
基于Python的解决方案将在更高的级别上工作,并且速度会慢得多.毕竟18GB是很多数据.最好使用操作系统功能,这将是最快的.
只需使用csv模块迭代行的事实,因此它永远不会将整个文件加载到内存中
import csv
with open("huge_csv.csv") as fr, open("huge_output.csv","w",newline='') as fw:
cr = csv.reader(fr)
cw = csv.writer(fw)
cw.writerow(["title1","title2","title3"])
cw.writerows(cr)
Run Code Online (Sandbox Code Playgroud)
使用writerows确保非常好的速度.记忆在这里幸免.一切都是逐行完成的.由于数据已正确处理,您甚至可以更改输出文件中的分隔符和/或引号.
| 归档时间: |
|
| 查看次数: |
1729 次 |
| 最近记录: |