这是两个文件,我只想读取其中一个。
a1 b1
a 1 line b 1 line
a 2 line b 2 line
a 3 line b 3 line
a 4 line b 4 line
a 5 line b 5 line
a 6 line b 6 line
... ...
a 400 line b 400 line
我想做的是只读'a1'文件,如果语句为true,则保留line_numbers。然后通过line_number转到b1文件。做点什么 (我不想读取'b1'文件,并且文件几乎相同。实际上a1文件和b1文件很大。因此,我不认为使用readlines或其他任何方法都可以)
到目前为止,我所做的是
with open("a1") as fin1, open("b1") as fin2:
for num1, line1 in enumerate(fin1,1):
if '77' in line1:
for num2, line2 in enumerate(fin2,1):
if num2 == num1:
print line2
输出
b 77 line
期望的输出
b 77 line
b 177 line
b 277 line
b 377 line
好像它只是讨价还价而第二次发表声明,然后去度假了。有什么帮助吗?提前非常感谢您。(对不起,如果我的英语困扰您。)
itertools.izip
可以有效地迭代两个可迭代项,并将它们配对。您甚至不需要行号:
import itertools
with open("a1") as fin1, open("b1") as fin2:
for line1, line2 in itertools.izip(fin1, fin2):
if '77' in line1:
print line2
如果两个文件的行数不同,izip
则会在较短的文件处停止。使用itertools.izip_longest
提供填充值,继续较长文件的结尾。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句