我有一个文件,我想选择文件中的某些行并将其复制到另一个文件。
在第一个文件中,我要复制的行带有单词“ XYZ”,从这里我要选择接下来的200行(包括匹配行)并将其复制到另一个文件。
下面是我的代码
match_1 = 'This is match word'
with open('myfile.txt') as f1:
for num, line in enumerate(f1, 1):
if log_1 in line:
print line
上面的代码将我引到行的开头,我需要从匹配的行中选择200行,然后将其复制并移动到另一个文本文件中。
我尝试了几个选项,例如while语句,但是我无法完全构建逻辑。请帮助
itertools.islice
找到匹配项后,您可以在文件对象上使用:
from itertools import islice
# some code before matching line is found
chunk = line + ''.join(islice(f1, 200))
这将消耗迭代器f1
到下200行,因此num
如果将其放在循环中,循环中的计数可能会不一致。
如果找到匹配项后不需要文件中的其他行,则可以使用:
from itertools import islice
with open('myfile.txt') as f1, open('myotherfile.txt') as f_out:
for num, line in enumerate(f1, 1):
if log_1 in line:
break
chunk = line + ''.join(islice(f1, 200))
f_out.write(chunk)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句