On 07/14/2011 04:00 PM, Ian Kelly wrote:
On Thu, Jul 14, 2011 at 1:46 PM, Billy Mays<[email protected]> wrote:def getLines(f): lines = [] for line in f: lines.append(line) return lineswith open('/var/log/syslog', 'rb') as f: lines = getLines(f) # do some processing with lines # /var/log/syslog gets updated in the mean time # always returns an empty list, even though f has more data lines = getLines(f) I found a workaround by adding f.seek(0,1) directly before the last getLines() call, but is this the expected behavior? Calling f.tell() right after the first getLines() call shows that it isn't reset back to 0. Is this correct or a bug?This is expected. Part of the iterator protocol is that once an iterator raises StopIteration, it should continue to raise StopIteration on subsequent next() calls.
Is there any way to just create a new generator that clears its `closed` status?
-- Bill -- http://mail.python.org/mailman/listinfo/python-list
