How to get the previous line in a file?

kyosohma at gmail.com kyosohma at gmail.com
Fri Mar 16 17:10:00 EDT 2007


On Mar 16, 3:51 pm, Shane Geiger <sgei... at ncee.net> 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
> sgei... at ncee.net  |  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




More information about the Python-list mailing list