How to write a file generator
Billy Mays
noway at nohow.com
Tue Jul 12 12:42:34 EDT 2011
On 07/12/2011 11:52 AM, Thomas Jollans wrote:
> On 07/12/2011 04:46 PM, Billy Mays wrote:
>> I want to make a generator that will return lines from the tail of
>> /var/log/syslog if there are any, but my function is reopening the file
>> each call:
>>
>> def getLines():
>> with open('/var/log/syslog', 'rb') as f:
>> while True:
>> line = f.readline()
>> if line:
>> yield line
>> else:
>> raise StopIteration
>>
>>
>> I know the problem lies with the StopIteration, but I'm not sure how to
>> tell the caller that there are no more lines for now.
>>
>> --
>> Bill
>
> http://stackoverflow.com/questions/1475950/tail-f-in-python-with-no-time-sleep
That was actually the behavior I was trying to avoid. If there is no
data to be read, the call will hang. That function is actually called
by a webserver (from wsgiref) so it cannot hang indefinitely.
--
Bill
More information about the Python-list
mailing list