2009/9/12 Dave Angel <da...@ieee.org>: > ranjan das wrote: >> >> Hi, >> >> I am new to python and i wrote this piece of code which is ofcourse not >> serving my purpose: >> >> Aim of the code: >> >> To read a file and look for lines which contain the string 'CL'. When >> found, >> print the entry of the next line (positioned directly below the string >> 'CL') >> ....continue to do this till the end of the file (since there are more >> than >> one occurrences of 'CL' in the file) >> >> My piece of code (which just prints lines which contain the string 'CL') >> >> f=open('somefile.txt','r') >> >> for line in f.readlines(): >> >> if 'CL' in line: >> print line >> >> >> please suggest how do i print the entry right below the string 'CL' >> >> >> > > Easiest way is probably to introduce another local, "previous_line" > containing the immediately previous line each time through the loop. Then > if "CL" is in the previous_line, you print current_line. > > > (untested) > > infile=open('somefile.txt','r') > > previous_line = "" > > for current_line in infile: > if 'CL' in previous_line: > print current_line > > previous_line = current_line > infile.close() > > Notice also that your call to readlines() was unnecessary. You can iterate > through a text file directly with a for loop. That won't matter for a small > file, but if the file is huge, this saves memory, plus it could save a pause > a the beginning while the whole file is read by readlines(). I also added a > close(), for obvious reasons. > > DaveA > > _______________________________________________ > Tutor maillist - tu...@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor >
If we want to be really modern: #Only works on python 2.5 or later. On 2.6 (or higher...), the following line is not needed. from __future__ import with_statement previous_line = "" with open('somefile.txt','r') as infile: for current_line in infile: if 'CL' in previous_line: print current_line previous_line = current_line -- Rich "Roadie Rich" Lovely There are 10 types of people in the world: those who know binary, those who do not, and those who are off by one. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor