proposal: another file iterator
python at rcn.com
Mon Jan 16 03:24:59 CET 2006
Paul Rubin wrote:
> I find pretty often that I want to loop through characters in a file:
> while True:
> c = f.read(1)
> if not c: break
> or sometimes of some other blocksize instead of 1. It would sure
> be easier to say something like:
> for c in f.iterbytes(): ...
> for c in f.iterbytes(blocksize): ...
> this isn't anything terribly advanced but just seems like a matter of
> having the built-in types keep up with language features. The current
> built-in iterator (for line in file: ...) is useful for text files but
> can potentially read strings of unbounded size, so it's inadvisable for
> arbitrary files.
> Does anyone else like this idea?
+1 It would be nice to see this replace the old API where you had to
test for an empty return value.
FWIW, I've seen it expressed using other tools:
for c in iter(partial(somefile.read, blocksize), ''):
. . .
More information about the Python-list