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