[EMAIL PROTECTED] wrote: > I have a text file with many hundreds of lines of data. The data of > interest to me, however, resides at the bottom of the file, in the last > 20 lines. Right now, I read the entire file and discard the stuff I > don't need. I'd like to speed up my program by reading only the last 20 > lines. How do I do this? > > Thomas Philips >
What discernible speed increase are you talking about? How long does it take to read the "many hundreds" of lines? For "many hundreds", IMHO it's not worth the bother, the complexity, the documentation, ... Just do this, it's about as fast as you'll get in pure python for a smallish file: def last_n_lines(filename, n): return open(filename, 'r').readlines()[-n:] For many hundreds of thousands of lines, one approach might be to open the file in binary mode, seek to the end of the file, then loop reading chunks backwards and unpacking the chunks until you've found 21 line terminators. Or perhaps 20 line separators :-) -- http://mail.python.org/mailman/listinfo/python-list