목차
728x90
1. 표준 스트림(Standard Stream)
파이썬은 기본적으로 아래와 같은 세 가지 표준 스트림을 제공한다
| Stream | 역할 | 설명 |
|---|---|---|
sys.stdin |
표준 입력 | 사용자 입력을 받을 때 사용 (ex. input() 내부적으로 사용) |
sys.stdout |
표준 출력 | 출력 데이터를 화면에 표시할 때 사용 (ex. print() 내부적으로 사용) |
sys.stderr |
표준 에러 출력 | 에러 메시지 출력 전용 스트림 에러 로깅이나 디버깅에 사용 |
import sys
# 입력 받기
# data = sys.stdin.readline()
# 출력하기
sys.stdout.write("표준 출력\n")
# 에러 출력
sys.stderr.write("표준 에러 출력\n")
2. 예외 발생 시 e.errno 로 에러 진단
파일 입출력 등에서 예외가 발생하면, OSError 혹은 IOError 계열의 예외에 errno 속성이 포함됨.
import errno
try:
with open("없는파일.txt") as f:
data = f.read()
except OSError as e:
print(f"오류 코드: {e.errno}")
print(f"오류 메시지: {e.strerror}")
자주 사용하는 errno 목록
| errno | 상수 이름 | 설명 |
|---|---|---|
| 2 | errno.ENOENT |
파일이나 디렉토리가 없음 |
| 13 | errno.EACCES |
접근 권한 없음 |
| 9 | errno.EBADF |
잘못된 파일 디스크립터 (이미 닫힌 파일 등) |
| 27 | errno.EFBIG |
파일 크기가 시스템 허용 최대 크기를 초과 |
| 23 | errno.ENFILE |
시스템 전체 파일 디스크립터 개수 초과 |
| 17 | errno.EEXIST |
파일이 이미 존재함 |
| 21 | errno.EISDIR |
디렉토리인데 파일처럼 열려 함 |
| 28 | errno.ENOSPC |
디스크 공간 부족 |
3. 요약
sys.stdin,sys.stdout,sys.stderr는 텍스트 스트림으로써 입출력의 기본 통로.sys.stderr는 에러 출력 전용으로, 로그 구분 등에 유용.errno값은 예외가 발생했을 때, 문제의 원인을 정확히 파악하는 데 도움을 줌.
'Development > Python' 카테고리의 다른 글
| [python] OS 모듈에 대하여. (0) | 2025.05.19 |
|---|---|
| [python] File Pointer / read() , readline() , readlines() 비교 (0) | 2025.05.19 |
| [python] 파이썬에서 운영체제에 따른 파일 경로 및 개행 처리 (0) | 2025.05.18 |
| [python] 클로저(Closure) (0) | 2025.05.17 |
| [python] lambda , map() , filter() (0) | 2025.05.17 |