The following function that returns the last line of a file works perfectly well under Python 2.71. but fails reliably under Python 3.2. Is this a bug, or am I doing something wrong? Any help would be greatly appreciated.
import os def lastLine(filename): ''' Returns the last line of a file file.seek takes an optional 'whence' argument which allows you to start looking at the end, so you can just work back from there till you hit the first newline that has anything after it Works perfectly under Python 2.7, but not under 3.2! ''' offset = -50 with open(filename) as f: while offset > -1024: offset *= 2 f.seek(offset, os.SEEK_END) lines = f.readlines() if len(lines) > 1: return lines[-1] If I execute this with a valid filename fn. I get the following error message: >>> lastLine(fn) Traceback (most recent call last): File "<pyshell#12>", line 1, in <module> lastLine(fn) File "<pyshell#11>", line 13, in lastLine f.seek(offset, os.SEEK_END) io.UnsupportedOperation: can't do nonzero end-relative seeks Sincerely Thomas Philips -- http://mail.python.org/mailman/listinfo/python-list