On Mar 16, 5:10 pm, [EMAIL PROTECTED] wrote: > On Mar 16, 3:51 pm, Shane Geiger <[EMAIL PROTECTED]> wrote: > > > > > lines = open('/tmp/foo.py', > > "r").read().splitlines() > > > previous_line = > > '' > > > for line in > > lines: > > > if "foo" in > > line: > > > print "found foo in the current line. The previous line is: " > > + > > previous_line > > > previous_line = > > line > > > Qilong Ren wrote: > > > Hi,all > > > > I am new to this list. And I am glade I am here. > > > I have a question. I need to do some text processing. I need to read > > > from a file line by line. If some line is met with some condition, the > > > previous line needs some modification. How to get the info of the > > > previous line? > > > > Thanks! > > > Qilong > > > > ------------------------------------------------------------------------ > > > Never miss an email again! > > > Yahoo! Toolbar > > > <http://us.rd.yahoo.com/evt=49938/*http://tools.search.yahoo.com/toolb...> > > > alerts you the instant new Mail arrives. Check it out. > > > <http://us.rd.yahoo.com/evt=49937/*http://tools.search.yahoo.com/toolb...> > > > -- > > Shane Geiger > > IT Director > > National Council on Economic Education > > [EMAIL PROTECTED] | 402-438-8958 | http://www.ncee.net > > > Leading the Campaign for Economic and Financial Literacy > > > sgeiger.vcf > > 1KDownload > > Hi, > > You should be able to use the file object's seek and tell methods. Or, > since you're using a list, you could use a counter and when the text > is found, you can print the previous line by subtracting one from the > counter. > > counter = 0 > for line in lines: > if 'foo' == line: > print 'found line. the previous line is: ' %s (lines[counter-1]) > counter += 1 > > # Or something like that. Experiment! > > Mike
A more pythonic solution makes use of enumerate(). for number, line in enumerate(lines): if line == 'foo': print 'found line. the previous line is: %s' % lines[number - 1] -- http://mail.python.org/mailman/listinfo/python-list