gpt4 book ai didi

python - 将大文本文件(约 50GB)拆分为多个文件

转载 作者:太空狗 更新时间:2023-10-29 20:32:41 31 4
gpt4 key购买 nike

我想将一个大约 50GB 的大文本文件拆分成多个文件。文件中的数据是这样的-[x=0-9之间的任意整数]

xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
...............
...............

文件中可能有数十亿行,我想每个文件写 30/40 百万行。我猜这些步骤是-

  • 我要打开文件
  • 然后使用 readline() 必须逐行读取文件并同时写入新文件
  • 一旦达到最大行数,它将创建另一个文件并又开始写作了。

我想知道如何以内存高效且更快的方式将所有这些步骤放在一起。我在堆栈中看到了一些例子,但没有一个能完全帮助我真正需要的东西。如果有人能帮助我,我将不胜感激。

最佳答案

此工作解决方案使用 shell 中可用的 split 命令。由于作者已经接受了非 python 解决方案的可能性,请不要投反对票。

首先,我创建了一个包含 1000M 条目 (15 GB) 的测试文件

awk 'BEGIN{for (i = 0; i < 1000000000; i++) {print "123.123.123.123"} }' > t.txt

然后我使用了split:

split --lines=30000000 --numeric-suffixes --suffix-length=2 t.txt t

生成一组 34 个名为 t00-t33 的小文件需要 5 分钟。 33 个文件每个 458 MB,最后一个 t33 是 153 MB。

关于python - 将大文本文件(约 50GB)拆分为多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22751000/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com