[ python-Bugs-1633941 ] for line in sys.stdin: doesn't notice EOF the first time
SourceForge.net
noreply at sourceforge.net
Sun Jan 14 05:20:50 CET 2007
Bugs item #1633941, was opened at 2007-01-12 07:34
Message generated for change (Comment added) made by gagenellina
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1633941&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Library
Group: Python 2.5
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Matthias Klose (doko)
Assigned to: Nobody/Anonymous (nobody)
Summary: for line in sys.stdin: doesn't notice EOF the first time
Initial Comment:
[forwarded from http://bugs.debian.org/315888]
for line in sys.stdin: doesn't notice EOF the first time when reading from tty.
The test program:
import sys
for line in sys.stdin:
print line,
print "eof"
A sample session:
liw at esme$ python foo.py
foo <--- I pressed Enter and then Ctrl-D
foo <--- then this appeared, but not more
eof <--- this only came when I pressed Ctrl-D a second time
liw at esme$
Seems to me that there is some buffering issue where Python needs to
read end-of-file twice to notice it on all levels. Once should be
enough.
----------------------------------------------------------------------
Comment By: Gabriel Genellina (gagenellina)
Date: 2007-01-14 01:20
Message:
Logged In: YES
user_id=479790
Originator: NO
Same thing occurs on Windows. Even worse, if the line does not end with
CR, Ctrl-Z (EOF in Windows, equivalent to Ctrl-D) has to be pressed 3
times:
D:\Temp>python foo.py
foo <--- I pressed Enter
^Z <--- I pressed Ctrl-Z and then Enter again
foo <--- this appeared
^Z <--- I pressed Ctrl-Z and then Enter again
<EOF>
D:\Temp>python foo.py
foo^Z <--- I pressed Ctrl-Z and then Enter
^Z <--- cursor stays here; I pressed Ctrl-Z and then Enter again
^Z <--- cursor stays here; I pressed Ctrl-Z and then Enter again
foo <EOF>
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1633941&group_id=5470
More information about the Python-bugs-list
mailing list