Lingua-e
Python

¿Qué significa EOFError?

← Errores

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().

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ómo solucionarlo

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.

Código corregido

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

Errores relacionados

¿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