On 2009-03-18, Grant Edwards <gra...@visi.com> wrote: > On 2009-03-17, Jim Garrison <jgarri...@troux.com> wrote: >> I'm an experienced C/Java/Perl developer learning Python. >> >> What's the canonical Python way of implementing this pseudocode? >> >> String buf >> File f >> while ((buf=f.read(10000)).length() > 0) >> { >> do something.... >> } >> >> In other words, I want to read a potentially large file in 10000 byte >> chunks (or some other suitably large chunk size). Since the Python >> 'file' object implements __next__() only in terms of lines (even, >> it seems, for files opened in binary mode) I can't see how to use >> the Python for statement in this context. >> >> Am I missing something basic, or is this the canonical way: >> >> with open(filename,"rb") as f: >> buf = f.read(10000) >> while len(buf) > 0 >> # do something.... >> buf = f.read(10000) > > with open(filename,"rb") as f: > buf = f.read(10000) > if not f: break > # do something
Ow! Botched that in a couple ways.... with open(filename,"rb") as f: while True: buf = f.read(10000) if not buf: break # do something -- Grant -- http://mail.python.org/mailman/listinfo/python-list