reading from sys.stdin

7stud bbxx789_05ss at
Fri Apr 13 11:36:47 CEST 2007

On Apr 13, 3:13 am, Michael Hoffman < at mh391.invalid> wrote:
> 7stud wrote:
> > I assume all input is buffered by default, so I'm not sure how it
> > explains things to say that input from sys.stdin is buffered.
> The difference with sys.stdin is that it has indeterminate length until
> you signal EOF. I believe you'd get the same problem reading from, say,
> a named pipe.

Couldn't you say the same thing about a file you are iterating over?

> >> I typed many lines, but lst contains only one item, as expected. Same as
> >> your regular file example: the file contains many lines, but only the
> >> first goes into the list.
> > Interesting example--not as I expected!  But there is a difference in
> > the two examples isn't there?  When you iterate over a file, the whole
> > file isn't put into an internal buffer first, is it?
> It is if the file is smaller than the buffer size.

How is that relevant?

> >> This should be f = iter(raw_input,"") and this will end in a EOFError
> >> and stop on blank line. So you need a wrapper
> > Why a wrapper?
> Because without a wrapper you'll get EOFError, while the file iterator
> would ordinarily give you StopIteration.

Did you run my example?  Did you get an error?  I don't get an error.

More information about the Python-list mailing list