reading the last line of a file

Martin Franklin mfranklin1 at gatwick.westerngeco.slb.com
Thu Sep 8 05:10:53 EDT 2005


Xah Lee wrote:
> Martin Franklin wrote:
> 
>>import gzip
>>log_file = gzip.open("access_log.4.gz")
>>last_line = log_file.readlines()[-1]
>>log_file.close()
> 
> 
> does the
> log_file.readlines()[-1]
> actually read all the lines first?


Yes I'm afraid it does.


> 
> i switched to system call with tail because originally i was using a
> pure Python solution
> 
>          inF = gzip.GzipFile(ff, 'rb');
>          s=inF.readlines()
>          inF.close()
>          last_line=s[-1]
> 
> and since the log file is 100 megabytes it takes a long time and hogs
> massive memory.
> 

Ok, in that case stick to your shell based solution, although 100
megabytes does not sound that large to me I guess it is relative
to the system you are running on :) (I have over a gig of memory here)


>  Xah
>  xah at xahlee.org
>http://xahlee.org/
> 




More information about the Python-list mailing list