Skip to main content
 首页 » 编程设计

python之在 Perl 或 Python 中按列值将 100 亿行文件拆分为 5,000 个文件

2025年05月04日27yyy_WW

我有一个 100 亿行制表符分隔的文件,我想根据一列(第一列)拆分成 5,000 个子文件。我怎样才能在 Perl 或 Python 中有效地做到这一点?

这已经在这里问过,但所有方法都会为读取的每一行打开一个文件,或者将所有数据放入内存中。

请您参考如下方法:

awk 助您一臂之力!

awk 'f!=$1{close(f)} {f=$1; print >> f}' file 

它将逐行处理,一次打开一个文件。

如果你将原始文件拆分成 block ,这可以更有效地并行完成并合并生成的文件(如果需要保留顺序,需要标记它们)