Python 파일 열기 모드란?
Python에서는 open() 함수를 사용할 때 두 번째 인자로 파일 모드(mode)를 지정하여 파일을 다양한 방식으로 열 수 있습니다. 각 모드는 파일을 읽을지, 쓸지, 추가할지 등의 동작 방식을 결정하며, 필요에 따라 여러 모드를 조합해서 사용할 수도 있습니다.
파일 모드 종류
| 모드 | 설명 |
| 'r' | 읽기 모드 (기본값). 파일의 내용을 읽기만 할 수 있습니다. |
| 'w' | 쓰기 모드. 파일이 없으면 새로 생성하고, 이미 존재하면 기존 내용을 모두 삭제(잘라내기)한 후 처음부터 씁니다. |
| 'x' | 배타적 생성 모드. 새 파일을 생성하는 데만 사용되며, 같은 이름의 파일이 이미 존재하면 오류(FileExistsError)가 발생합니다. |
| 'a' | 추가(append) 모드. 기존 내용을 지우지 않고 파일 끝에 이어서 씁니다. 파일이 없으면 새로 생성합니다. |
| 't' | 텍스트 모드 (기본값). 문자열 단위로 파일을 다룹니다. |
| 'b' | 바이너리 모드. 이미지, 실행 파일 등 바이트 단위 데이터를 다룰 때 사용합니다. |
| '+' | 갱신(update) 모드. 읽기와 쓰기를 동시에 할 수 있도록 파일을 엽니다. |
모드 조합하기
위 모드들은 서로 조합하여 사용할 수 있으며, 파일을 열 때 두 번째 인자로 전달하면 됩니다. 예를 들어 'rb'는 바이너리 읽기, 'w+b'는 바이너리 읽기·쓰기를 의미합니다. 만약 모드를 지정하지 않고 파일을 열면 기본적으로 읽기 전용 텍스트 모드('rt')로 열립니다.
사용 예제
f = open("test.txt") # 'rt'와 동일 (기본값: 읽기 전용 텍스트 모드)
f = open("test.txt", 'w') # 텍스트 모드로 쓰기
f = open("test.bmp", 'r+b') # 바이너리 모드로 읽기/쓰기
f = open("test.txt", 'a') # 추가(append) 모드참고 팁
파일 작업이 끝난 후에는 반드시 close()로 파일을 닫거나, with open(...) as f: 구문을 사용하면 블록이 끝날 때 자동으로 파일이 닫히므로 더 안전하게 리소스를 관리할 수 있습니다.