Lingua-e
← Errores
Python

Qué significa EOFError y cómo solucionarlo

Referencia del error

EOFError

Lenguaje

Python

Severidad

Baja

Cuándo ocurre

EOFError se lanza cuando la función incorporada input() llega al final de un archivo o flujo sin leer ningún dato.

Posibles soluciones

Envuelve las llamadas a input() en un bloque try/except EOFError para manejar el caso correctamente. Al procesar tuberías, verifica si stdin es una terminal con sys.stdin.isatty() antes de llamar a input(). Proporciona valores predeterminados para contextos no interactivos.

Errores relacionados

Más detalles

EOFError se lanza cuando la función incorporada input() llega al final de un archivo o flujo sin leer ningún dato. Esto ocurre comúnmente en scripts que leen de stdin cuando el flujo de entrada está cerrado o redirigido desde una fuente vacía.

Por qué ocurre

  • El usuario presiona Ctrl+D (Unix) o Ctrl+Z (Windows) para enviar EOF durante input().
  • El script lee de stdin pero se ejecuta con una tubería vacía o agotada.
  • Frameworks de pruebas automatizadas que no proporcionan stdin al proceso.
  • Lectura más allá del final de un objeto similar a archivo pasado a input().

Posibles soluciones

Envuelve las llamadas a input() en un bloque try/except EOFError para manejar el caso correctamente. Al procesar tuberías, verifica si stdin es una terminal con sys.stdin.isatty() antes de llamar a input(). Proporciona valores predeterminados para contextos no interactivos.

Ejemplos

Python

Código que causa el error

# Run this and immediately send EOF (Ctrl+D)
name = input("Enter your name: ")
print(f"Hello, {name}")

Error en la terminal

Enter your name:
EOFError: EOF when reading a line

Código corregido

try:
    name = input("Enter your name: ")
    print(f"Hello, {name}")
except EOFError:
    print("No input provided, using default")
    name = "Guest"

Practica en inglés

¿Cómo le explicarías un EOFError a un compañero dev? Elige la frase correcta:

"I hit an error...

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis