[Tutor] parsing a continuous log file

Michael H. Goldwasser goldwamh at slu.edu
Fri Nov 30 02:08:46 CET 2007


The for loop below will exit once it hits EOF (and will not continue
if more data is later appended.  But as Alan says, a while loop will
suffice.  I've tested the following variant.

import time
f = file('foo.txt')

while True:
    line = f.readline()
    if line:
        print "do what you want with", line
    else:                 # currently at end of file
        time.sleep(1)     # don't want to poll too quickly

Good luck,
Michael

On Friday November 30, 2007, Alan Gauld wrote: 

>    
>    "ray sa" <bizag007 at yahoo.com> wrote
>    
>    > used in UNIX called the tail command.
>    >
>    > May be someone can help me to achieve the same result with modifying 
>    > the above code?
>    
>    Sorry i didnm't look too closely but i think you should only need to 
>    keep the file open andd then  loop around with a delay.
>    Sometjing like:
>    
>    try:
>      f = open('foo.txt')
>      for line in f:
>         print line
>         time.sleep(1)
>    finally:
>       f.close()
>    
>    That will keep reading the lines until it hits the end of the file.
>    Of course if the file is eventually empty then it exits so you
>    may want a while True loop instead and only print if the line is non 
>    empty




More information about the Tutor mailing list