[Python-Dev] Wishlist: dowhile

Raymond Hettinger python at rcn.com
Tue Jun 14 07:25:38 CEST 2005


> >> By the way, whatever happened to "and while"?  i.e.:
> >>
> >>      while True:
> >>          data = inp.read(blocksize)
> >>      and while data:
> >>          out.write(data)
> >>
> >
> > My favourite version of this is
> >
> >    while:
> >      data = inp.read(blocksize)
> >    gives data:
> >      out.write(data)
> 
> Well, we could always just make iterator factories for the common
> cases and stuff them in itertools.  I do need to use this pattern
> from time to time, but primarily for this exact use case, so an
> "itertools.readby" or the like would probably solve this problem for
> most people most of the time.

Doesn't work.  You still need to be able to pass through the blocksize
argument and the target bound method.  To get what you want, there would
need to be a new method in the file API.  The reason is roughly similar
to why we have iteritems as part of the mapping API and not as a
standalone itertool.

    for data in inp.read(blocksize):
        . . .


Raymond


More information about the Python-Dev mailing list