Anastasios Hatzis wrote: > Diez B. Roggisch wrote: > > ... > > I got the same problem with large XML as Marc. > > So you deserve also my thanks for the example. :-) > >> class PercentageFile(object): >> >> def __init__(self, filename): >> self.size = os.stat(filename)[6] >> self.delivered = 0 >> self.f = file(filename) >> >> def read(self, size=None): >> if size is None: >> self.delivered = self.size >> return self.f.read() >> data = self.f.read(size) >> self.delivered += len(data) >> return data >> > > I guess some client impl need to call read() on a wrapped xml file until > all portions of the file are read.
You should fed the PercentageFile-object to the xml-parser, like this: parser = xml.sax.make_parser() pf = PercentageFile(filename) parser.parse(pf) >> @property >> def percentage(self): >> return float(self.delivered) / self.size * 100.0 >> > > @property? > > What is that supposed to do? It's making percentage a property, so that you can access it like this: pf.percentage instead of pf.percentage() Google python property for details, or pydoc property. Diez -- http://mail.python.org/mailman/listinfo/python-list