End of file

Alex Martelli aleaxit at yahoo.com
Thu Oct 7 07:38:43 EDT 2004


duikboot <"adijkstra at baanders NOSPAM consultancy.nl"> wrote:

> Kat wrote:
> > Hi ,
> > How do you identify the last line of a file? I am in a "for" loop and
> > need to know which is the last line of the file while it is being read
> > in this loop.
> > 
> > Thanks
> > Kat
> 
> f = open("test.txt").readlines()
> lines = len(f)
> print lines
> counter = 1
> for line in f:
>      if counter == lines:
>          print "last line: %s" % line
>      counter += 1

A slight variation on this idea is using the enumerate built-in rather
than maintaining the counter by hand.  enumerate counts from 0, so:

for counter, line in enumerate(f):
    if counter == lines-1: is_last_line(line)
    else: is_ordinary_line(line)

If the file's possibly too big to read comfortably in memory, of course,
other suggestions based on generators &c are preferable.


Alex



More information about the Python-list mailing list