首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中拆分大文件的最佳方法

在Python中拆分大文件的最佳方法
EN

Stack Overflow用户
提问于 2015-05-10 21:45:49
回答 1查看 115关注 0票数 3

我需要用以下方式拆分一个非常大的文件(3 3GB)10次:第一次拆分在前10%的行和文件的其余部分之间拆分,第二次拆分在第二个10%的行和其余的行之间拆分,以此类推(这是为了进行交叉验证)

我天真地将文件的行加载到列表中,遍历列表,并根据索引将每行写到正确的输出文件中。这太耗时了,因为它每次写入3 3GB的数据。

有没有更好的方法呢?

注意:在每一行的开头添加#就像删除它一样。在开头的行首添加和删除#是不是更明智?

例如:如果文件是1,2,3,4,5,6,7,8,9,10,那么我想像这样拆分它:

代码语言:javascript
复制
[1] and [2,3,4,5,6,7,8,9,10]
[2] and [1,3,4,5,6,7,8,9,10]
[3] and [1,2,4,5,6,7,8,9,10]

诸若此类

EN

回答 1

Stack Overflow用户

发布于 2015-05-10 23:26:33

我建议尽量减少文件的数量。即使30 GB对于现代磁盘来说并不是太多,但它仍然需要大量的努力(和时间)来处理。

例如:

  • 假设你想要10%的行数,而不是10%的大小,你可以创建一个每行开头的索引文件,并通过索引
  • 访问(单个的,原始的)文本文件,你也可以将原始文件转换成一个固定的记录文件,这样每一行文本都占用相同的大小。然后,您可以使用seek()选择访问。

这两个函数都可以通过在Python中定义一个类似文件的对象来“隐藏”。这样,你就可以将单个文件作为几个“虚拟”文件访问,每个文件只显示你想要的零件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30152157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档