Creo que sé lo que está pasando. Estás golpeando ctrl-D
sin tocar enter
. Si desea enviar una línea al programa, simplemente presione enter. Si tocas ctrl-D
sin tocar enter
, puedes presionar ctrl-D
nuevamente y tu programa debería ver la línea. En este caso (dos ctrl-D
s en sucesión), su programa no verá una nueva línea al final de la línea.
Por ejemplo, digamos que tengo un script Python a.py
:
import sys
for line in sys.stdin:
sys.stdout.write('%s' % line)
Y ejecutarlo:
$ python a.py
Y a continuación, introduzca la siguiente:
line 1
line 2<ctrl-D><ctrl-D>
el programa se imprimirá:
line 1
line 2$
$
es el intérprete de comandos. Aquí hay una sesión completa con la entrada anterior:
$ python a.py
línea 1
línea 2 línea 1
línea 2 $
(Negrita muestran salida. Romano caso de que el programa es para mostrar lo que he escrito, sans los dos ctrl-D
s)
Si esto no es lo que sucede, debe decirnos más sobre lo que está haciendo.
La manera en que funcionan la mayoría de los terminales, tan pronto como presiona Enter, su entrada se envía a Python. –
Si quieres cambiar la forma en que funciona, Python tiene que cambiar la configuración del terminal, que es magia negra ... ¿ves el módulo 'termios' quizás? http://docs.python.org/library/termios.html –