error eoferror python string input eof

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.