首页 > 解决方案 > 逐行附加 2 个 csv 文件时的内存问题

问题描述

我有一个较大的 csv 文件(约 550 mb)和一个较小的 csv 文件(约 5mb),我想将所有行合并到一个 csv 文件中。它们都具有相同的标题(相同的顺序、值、列数),并且显然较大的文件有更多的行。我正在使用 32 位 Python(无法更改)并且在附加 csv 时遇到问题。似乎最佳答案和最佳答案之后的下一个答案在这里有效:如何在 python 中合并大型 csv 文件?. 然而,这需要大量的时间,我正在寻找加快这个过程的方法。此外,当我停止运行链接问题的第二个答案中的代码时(因为运行需要很长时间),生成的 csv 中的第一行始终为空。我猜当您调用 pd.to_csv(..., mode='a', ...) 时,它会附加在 csv 的第一行下方。你如何确保第一行被填充?

标签: pythonpandascsvmemorymemory-management

解决方案


这在 Linux 命令行中要简单得多,并且不需要将文件加载到内存中

使用tail命令,+2是要跳过的行数。通常对我来说,由于文件的格式,我需要 +2 而不是 +1:

tail -n +2 small.csv >> giant.csv

这应该可以解决问题。

如果您需要在 python 中执行此操作,则可能会使用附加模式,但需要加载到内存中。


推荐阅读