Hari Sekhon wrote: > I've seen people using everything from zip to touch, either out of > laziness or out of the fact it wouldn't work very well in python, this > zip case is a good example.
so based on a limitation in one library, and some random code you've seen on the internet, you're making generalizations about the language ? the zip case is a pretty lousy example, btw; after all, using the existing API, it's not that hard to implement an *incremental* read function if the provided read-into-string version isn't sufficient: import zipfile, zlib ## # Given a 'zip' instance, copy data from the 'name' to the # 'out' stream. def explode(out, zip, name): zinfo = zip.getinfo(name) if zinfo.compress_type == zipfile.ZIP_STORED: decoder = None elif zinfo.compress_type == zipfile.ZIP_DEFLATED: decoder = zlib.decompressobj(-zlib.MAX_WBITS) else: raise zipfile.BadZipFile("unsupported compression method") zip.fp.seek(zinfo.file_offset) size = zinfo.compress_size while 1: data = zip.fp.read(min(size, 8192)) if not data: break size -= len(data) if decoder: data = decoder.decompress(data) out.write(data) if decoder: out.write(decoder.decompress('Z')) out.write(decoder.flush()) </F> -- http://mail.python.org/mailman/listinfo/python-list