On Tue, Nov 10, 2009 at 2:25 PM, Stephen Nelson-Smith <sanel...@gmail.com> wrote: ><snip> > >From here I get: > > import gzip > > class LogFile: > def __init__(self, filename, date): > self.logfile = gzip.open(filename, 'r') > self.date = date > > def __iter__(self): > for logline in self.logfile: > stamp = self.timestamp(logline) > if stamp.startswith(date): > yield (stamp, logline) > > def timestamp(self, line): > return " ".join(self.line.split()[3:5]) > > l = LogFile("/home/stephen/access_log-20091105.gz", "[04/Nov/2009") > > I get: > > Python 2.4.3 (#1, Jan 21 2009, 01:11:33) > [GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. >>>> import kent >>>> kent.l > <kent.LogFile instance at 0x2afb05142bd8> >>>> dir(kent.l) > ['__doc__', '__init__', '__iter__', '__module__', 'date', 'logfile', > 'timestamp'] >>>> for line in kent.l: > ... print line > ... > Traceback (most recent call last): > File "<stdin>", line 1, in ? > File "kent.py", line 10, in __iter__ > stamp = self.timestamp(logline) > File "kent.py", line 15, in timestamp > return " ".join(self.line.split()[3:5]) > AttributeError: LogFile instance has no attribute 'line' >>>> for stamp,line in kent.l: > ... print stamp,line > ... > Traceback (most recent call last): > File "<stdin>", line 1, in ? > File "kent.py", line 10, in __iter__ > stamp = self.timestamp(logline) > File "kent.py", line 15, in timestamp > return " ".join(self.line.split()[3:5]) > AttributeError: LogFile instance has no attribute 'line' >>>> for stamp,logline in kent.l: > ... print stamp,logline > ... > Traceback (most recent call last): > File "<stdin>", line 1, in ? > File "kent.py", line 10, in __iter__ > stamp = self.timestamp(logline) > File "kent.py", line 15, in timestamp > return " ".join(self.line.split()[3:5]) > AttributeError: LogFile instance has no attribute 'line' >
probably that line should have been " ".join(line.split()[3:5]), i.e. no self. The line variable is a supplied argument. Hugo _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor