On 2011-01-26 02:59:26 -0800, Xavier Heruacles said:
I have do some log processing which is usually huge. The length of each line is variable. How can I get the last line?? Don't tell me to use readlines or something like linecache...
This is not optimum or efficient, but it works! If you want to see what's going on, use 4 instead of 4096 and 8 instead of 8192 and add a print statement to the bottom of the while loop. :)
import os with open('biglogfile.log', 'r') as fh: fh.seek(-4096, os.SEEK_END) buffer = fh.read(4096) # We are expecting a trailing newline. while "\n" not in buffer[:-1]: fh.seek(-8192, os.SEEK_CUR) buffer = fh.read(4096) + buffer # Eliminate empty lines, they aren't useful. lines = [line for line in buffer.split('\n') if line] print lines[-1] — Alice. :) -- http://mail.python.org/mailman/listinfo/python-list