7stud wrote: > On Apr 13, 3:13 am, Michael Hoffman <[EMAIL PROTECTED]> 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?
Only if the file has indeterminate length. Regular files have a length. >>>> 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. Yes I did. I did get an error. >>> lst = [] >>> f = iter(raw_input, "") >>> for line in f: ... lst.append(line) ... abc def <Ctrl-D>Traceback (most recent call last): File "<stdin>", line 1, in <module> EOFError -- Michael Hoffman -- http://mail.python.org/mailman/listinfo/python-list