how to read the last line of a huge file???
Aahz
aahz at pythoncraft.com
Sat Jan 29 13:51:59 EST 2011
In article <mailman.1412.1296196161.6505.python-list at python.org>,
John O'Hagan <research at johnohagan.com> wrote:
>
>file.seek takes an optional 'whence' argument which is 2 for the end, so you
>can just work back from there till you hit the first newline that has anything
>after it:
>
>
>def lastline(filename):
> offset = 0
> line = ''
> with open(filename) as f:
> while True:
> offset -= 1
> f.seek(offset, 2)
> nextline = f.next()
> if nextline == '\n' and line.strip():
> return line
> else:
> line = nextline
It's a Bad Idea to mix direct file operations with the iterator API.
Use f.read() instead of f.next().
--
Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/
"All problems in computer science can be solved by another level of
indirection." --Butler Lampson
More information about the Python-list
mailing list