본문 바로가기
프로그래밍언어/파이썬[Error]

[파이썬][Error] 083. EOFError - EOF when reading a line

by about_IT 2025. 5. 30.
728x90

EOFError: EOF when reading a line 오류는 input() 함수로 입력을 받을 때, 예상했던 입력이 도달하지 않고 파일이나 스트림이 종료(EOF)되어 발생하는 예외입니다. 주로 자동화된 실행, 표준 입력이 비어 있는 환경, 또는 파일 기반 입력 처리에서 발생합니다.

이 오류는 콘솔 입력을 받지 못하는 환경(Jupyter, 온라인 플랫폼, 배치 실행 등)이나 sys.stdin이 비어 있는 경우에도 자주 발생하며, 명시적인 입력이 요구되지만 공급되지 않을 때 발생합니다.

● 오류 발생 예시

# 입력이 제공되지 않는 환경에서 실행
name = input("이름을 입력하세요: ")

위 코드가 입력을 기다리는 중인데 아무 값도 전달되지 않으면 EOFError가 발생합니다.

EOFError: EOF when reading a line

● 해결 방법

  • try-except 구문으로 EOF 처리
  • 콘솔이 아닌 환경에서는 input() 대신 기본값 사용
  • 파일 입력 시 readline()에서 EOF 여부 확인

● 예시 코드 (예외 처리)

try:
    name = input("이름 입력: ")
except EOFError:
    name = "(입력 없음)"
    print("입력이 감지되지 않았습니다.")

● 자주 하는 실수

  • 스크립트를 파이프 입력 없이 실행하면서 input() 사용
  • 파일의 끝까지 반복하면서 마지막 줄 처리 누락
  • 대화형 입력이 불가능한 환경에서 input() 호출

● 결론

EOFError - EOF when reading a line는 입력을 받는 중 예상보다 먼저 종료가 발생했을 때 나타나는 예외입니다. 비대화형 환경이나 파일 처리에서 입력 누락을 대비한 예외 처리가 필요합니다.

728x90