On Apr 15, 10:59 am, Steve Holden <[EMAIL PROTECTED]> wrote: > 7stud wrote: > > On Apr 14, 7:43 am, Steve Holden <[EMAIL PROTECTED]> wrote: > >> 7stud wrote: > >>> On Apr 13, 6:20 am, Michael Hoffman <[EMAIL PROTECTED]> wrote: > >> [...] > > >>> But if you hit return on a blank line, there is no error. In other > >>> words, will stop on a blank line and not return EOFError. > >>> Anyway, it seems everyone is saying that when you iterate over a file, > >>> the whole file is first read into memory. Therefore iterating over > >>> sys.stdin is consistent: you have to type Ctrl+D to signal EOF before > >>> the iteration can start. Is that about right? > >> No. The file content is usually buffered, but the buffering doesn't > >> necessarily include the whole content of the file. > > >> If you are iterating over the file the correct way to access the next > >> line is to call the file's .next() method, as I indicated before. > > >> If you are reading lines the appropriate way is to use readline(). > > >> And, as you have already seen an error message telling you, mixing the > >> two types is unlikely to give you usable results. > > > Does iterating over stdin work the same way? If one were to type in > > enough lines to fill the buffer would iteration begin before entering > > EOF with Ctrl+D? > > Why don't you try it and tell me? That's what the interactive > interpreter is for. > > regards > Steve > -- > Steve Holden +44 150 684 7255 +1 800 494 3119 > Holden Web LLC/Ltd http://www.holdenweb.com > Skype: holdenweb http://del.icio.us/steve.holden > Recent Ramblings http://holdenweb.blogspot.com
I just typed in 700 lines of text, and the iteration hasn't begun yet. Should I keep going? -- http://mail.python.org/mailman/listinfo/python-list