我需要用以下方式拆分一个非常大的文件(3 3GB)10次:第一次拆分在前10%的行和文件的其余部分之间拆分,第二次拆分在第二个10%的行和其余的行之间拆分,以此类推(这是为了进行交叉验证)
我天真地将文件的行加载到列表中,遍历列表,并根据索引将每行写到正确的输出文件中。这太耗时了,因为它每次写入3 3GB的数据。
有没有更好的方法呢?
注意:在每一行的开头添加#就像删除它一样。在开头的行首添加和删除#是不是更明智?
例如:如果文件是1,2,3,4,5,6,7,8,9,10,那么我想像这样拆分它:
[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]诸若此类
发布于 2015-05-10 23:26:33
我建议尽量减少文件的数量。即使30 GB对于现代磁盘来说并不是太多,但它仍然需要大量的努力(和时间)来处理。
例如:
这两个函数都可以通过在Python中定义一个类似文件的对象来“隐藏”。这样,你就可以将单个文件作为几个“虚拟”文件访问,每个文件只显示你想要的零件。
https://stackoverflow.com/questions/30152157
复制相似问题