python – 同时迭代两个文件的行
发布时间:2020-12-20 12:32:44 所属栏目:Python 来源:网络整理
导读:我试图在两个文件之间连接片段特定的行.这样我想从file2中的第2行添加一些东西到file1的第2行.然后从第6行从file2到文件1的第6行,依此类推.有没有办法同时迭代这两个文件来做到这一点? (知道输入文件大约为15GB可能会有所帮助). 这是一个简化的例子: 档案1
我试图在两个文件之间连接片段特定的行.这样我想从file2中的第2行添加一些东西到file1的第2行.然后从第6行从file2到文件1的第6行,依此类推.有没有办法同时迭代这两个文件来做到这一点? (知道输入文件大约为15GB可能会有所帮助).
这是一个简化的例子: 档案1: Ignore This is a Ignore Ignore Ignore This is also a Ignore Ignore 文件2: Ignore sentence Ignore Ignore Ignore sentence Ignore Ignore 输出文件: Ignore This is a sentence Ignore Ignore Ignore This is also a sentence Ignore Ignore 解决方法
Python3:
with open('bigfile_1') as bf1: with open('bigfile_2') as bf2: for line1,line2 in zip(bf1,bf2): process(line1,line2) 重要的是,bf1和bf2不会立即读取整个文件.它们是知道如何一次生成一行的迭代器.
使用with确保文件将在之后关闭. Python 2.x import itertools with open('bigfile_1') as bf1: with open('bigfile_2') as bf2: for line1,line2 in itertools.izip(bf1,line2) Python 2.x不能以相同的方式使用zip – 它会产生一个列表而不是一个可迭代的,用这些15GB文件占用你的所有系统内存.我们需要使用特殊的可迭代版本的zip. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |