I'm writing a wrapper class to handle the line merging and filtering for a log file analysis app
The problem I'm running into is that the StopIteration exception raised when the wrapped file goes past EOF isn't causing the second for loop to stop. Wrapping the second for loop in a try/except clause shows that the exception is being raised though. Could someone more familiar with the underlying implementation please give me a hint as to why this is happening? import gzip class wrapper : def __init__ (self, filename) : if filename[-3:] == ".gz" : self.fh = gzip.GzipFile(filename, "r") else : self.fh = open(filename, "r") def __iter__ (self) : return self def next (self) : for line in self.fh : # StopIteration raised here when file exhausted if line[:1] == "t" : # filter out lines starting with 't' continue return line.rstrip() if __name__ == "__main__" : # using the file handle fh = open("test.txt") for line in fh : print line.rstrip() fh.close() # using the wrapper class fh = wrapper("test.txt") for line in fh : # StopIteration ignored here print line -- http://mail.python.org/mailman/listinfo/python-list