Reading a text file backwards

Rick Holbert holbertr at dma.org
Thu Sep 30 16:57:54 EDT 2004


Jay,

Try this:

myfile = open('myfile.txt', 'r')
mylines = myfile.readlines()
myfile.close()
mylines.reverse()

Rick

Jay wrote:

> I have a very large text file (being read by a CGI script on a web
> server), and I get memory errors when I try to read the whole file into a
> list of strings. The problem is, I want to read the file backwards,
> starting with the last line.
> 
> Previously, I did:
> 
> myfile = open('myfile.txt', 'r')
> mylines = myfile.readlines()
> myfile.close()
> for line in range(len(mylines)-1, -1, -1):
>     # do something with mylines[line]
> 
> This, however caused a "MemoryError," so I want to do something like
> 
> myfile = open('myfile.txt', 'r')
> for line in myfile:
>     # do something with line
> myfile.close()
> 
> Only, I want to iterate backwards, starting with the last line of the
> file. Can anybody suggest a simple way of doing this? Do I need to jump
> around with myfile.seek() and use myfile.readline() ?




More information about the Python-list mailing list