I am trying to print next 3 lines after a match
for example input is :
Testing
Result
test1 : 12345
test2 : 23453
test3 : 2345454
so i am trying to search "Result" string in file and print next 3 lines from it:
Output will be :-
test1 : 12345
test2 : 23453
test3 : 2345454
my code is :
with open(filename, 'r+') as f:
for line in f:
print line
if "Benchmark Results" in f:
print f
print next(f)
its only giving me the output :
testing
how do i get my desired output, help please
解决方案
First you need to check that the text is in the line (not in the fileobj f), and you can utilise islice to take the next 3 lines from f and print them, eg:
from itertools import islice
with open(filename) as f:
for line in f:
if 'Result' in line:
print(''.join(islice(f, 3)))
The loop will continue from the line after the three printed. If you don't want that - put a break inside the if.