[EMAIL PROTECTED] wrote: > Hi there, > > I have a 28mb XML file which I parse with SAX. I have some processing > to do in the startElement / endElement callbacks, which slows the > parsing down to about 60 seconds on my machine. > > My application is unresponsive for this time, so I would like to show > a progress bar. I could show a spinner to show that the application is > responsive, but I would prefer to show a percentage. Is there any way > to query the parser to see how many bytes of the input file have been > processed so far?
I'd create a file-like object that does this for you. It should wrap the original file, and count the number of bytes delivered. Something along these lines (untested!!!): 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 @property def percentage(self): return float(self.delivered) / self.size * 100.0 Diez -- http://mail.python.org/mailman/listinfo/python-list