Python에서 바이너리 모드로 파일 열기
바이너리(binary) 파일은 사람이 읽을 수 있는 문자가 아닌 형식으로 구성된 파일을 의미합니다. JPEG나 GIF 같은 이미지 파일, MP3 같은 오디오 파일, 그리고 Word나 PDF처럼 바이너리 문서 형식으로 저장된 파일들이 대표적인 예입니다.
Python에서 파일은 기본적으로 텍스트(text) 모드로 열립니다. 따라서 이미지, 오디오 등의 바이너리 파일을 다루려면 파일을 열 때 모드에 'b'를 추가해야 합니다. 예를 들어 읽기 모드라면 'rb', 쓰기 모드라면 'wb'와 같이 지정합니다.
예제 코드
f = open('my_file.mp3', 'rb')
file_content = f.read()
f.close()위 코드는 my_file.mp3 파일을 바이너리 읽기 모드('rb')로 연 뒤, 파일의 전체 내용을 읽어 file_content 변수에 저장합니다. 이렇게 읽어 들인 데이터는 텍스트가 아닌 bytes 객체로 반환됩니다.
with 문을 활용한 더 안전한 방법
파일 작업이 끝난 후 자동으로 파일이 닫히도록 with 문을 사용하는 것이 좋습니다. 이 방식은 예외가 발생하더라도 파일이 확실히 닫히므로 리소스 누수를 방지할 수 있습니다.
with open('my_file.mp3', 'rb') as f:
file_content = f.read()
# with 블록을 벗어나면 파일이 자동으로 닫힘주요 파일 모드 정리
'r': 텍스트 읽기 모드 (기본값)'rb': 바이너리 읽기 모드'w': 텍스트 쓰기 모드 (파일이 있으면 덮어씀)'wb': 바이너리 쓰기 모드'ab': 바이너리 추가(append) 모드
바이너리 모드는 이미지 처리, 오디오 편집, 직렬화된 데이터 읽기 등 원본 데이터를 그대로 다뤄야 할 때 필수적입니다. 텍스트 모드와 달리 인코딩 변환이 일어나지 않으므로 데이터가 손상되지 않고 원본 그대로 유지됩니다.