python - eoferror - ¿Cómo leer la entrada del usuario hasta EOF?
eof python error (4)
Mi código actual lee la entrada del usuario hasta el salto de línea. Pero estoy tratando de cambiar eso a un formato, donde el usuario puede escribir la entrada hasta strg + d para finalizar su entrada.
Actualmente lo hago así:
input = raw_input ("Input: ")
¿Pero cómo puedo cambiar eso a una versión lista para EOF?
Con sys.stdin.readline()
podrías escribir así:
import sys
while True:
input_ = sys.stdin.readline()
if input_ == '''':
break
print type(input_)
sys.stdout.write(input_)
Recuerde, sea cual sea su entrada, es una cadena.
Para raw_input
o input
versión de input
, escriba así:
while True:
try:
input_ = input("Enter:/t")
#or
_input = raw_input("Enter:/t")
except EOFError:
break
print type(input_)
print type(_input)
print input_
print _input
Esto funcionó para mí en Python 3:
from sys import stdin
for line in stdin:
print(line)
También podría hacer lo siguiente:
acc = []
out = ''''
while True:
try:
acc.append(raw_input(''> '')) # Or whatever prompt you prefer to use.
except EOFError:
out = ''/n''.join(acc)
break
Use file.read
:
input_str = sys.stdin.read()
De acuerdo con la documentación:
file.read([size])
Lea a lo sumo bytes de tamaño del archivo (menos si la lectura coincide con EOF antes de obtener bytes de tamaño). Si el argumento de tamaño es negativo u omitido, lea todos los datos hasta que se alcance EOF.
>>> import sys
>>> isinstance(sys.stdin, file)
True
Por cierto, no use input
como nombre de variable. Sombrea la input
función incorporada.