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 - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor