파일을 다룰 때 파일을 어떻게 열 것인지(open mode) 를 지정해야 합니다. 파이썬에서는 읽기, 쓰기, 추가 모드를 포함해 총 6가지 모드가 제공됩니다.
❓ 파일을 열었는데, 기존 내용이 날아가거나, 쓰기가 안 된다면?
❗ 파일 모드를 제대로 선택했는지 확인하세요!
6가지 파일 모드 총정리
각 모드 상세 설명
r (읽기 모드)
- 기본값 (모드를 지정하지 않으면 r 모드)
- 읽기 전용 (write() 사용 시 에러 발생)
- 파일이 없으면 에러 발생
with open("example.txt", "r") as file:
content = file.read()
print(content)
w (쓰기 모드)
- 기존 파일을 삭제하고 새로 작성
- 파일이 없으면 새로 생성
- write() 사용 가능, 하지만 기존 내용은 모두 사라짐
with open("example.txt", "w") as file:
file.write("새로운 내용")
주의: 기존 내용이 모두 삭제됩니다.
a (추가 모드)
- 기존 내용을 유지하면서 새로운 내용을 끝에 추가
- write() 사용 가능
- 파일이 없으면 새로 생성
with open("example.txt", "a") as file:
file.write("\n추가된 내용")
기존 내용 유지하면서 새로운 데이터를 추가하고 싶다면 a 모드를 사용하세요!
r+ (읽기 + 쓰기)
- 기존 파일을 읽고, 수정할 수 있음
- 파일의 처음부터 덮어쓰기
- 파일이 없으면 에러 발생
with open("example.txt", "r+") as file:
file.write("덮어쓰기")
주의: 파일 처음부터 새로운 내용이 써지므로, 기존 내용 일부가 덮어씌워질 수 있습니다.
w+ (읽기 + 쓰기, 기존 내용 삭제)
- 기존 파일을 삭제하고 새로 작성
- 파일이 없으면 새로 생성
- write()와 read() 둘 다 가능
with open("example.txt", "w+") as file:
file.write("새로운 데이터")
file.seek(0) # 파일 처음으로 이동
print(file.read()) # 방금 쓴 내용 읽기
a+ (읽기 + 추가)
- 기존 내용을 유지하면서 파일 끝에 새로운 내용 추가
- 파일이 없으면 새로 생성
- write()와 read() 둘 다 가능
with open("example.txt", "a+") as file:
file.write("\n새로운 데이터 추가")
file.seek(0) # 파일 처음으로 이동
print(file.read()) # 전체 내용 읽기
어떤 파일 모드를 써야 할까?
마무리
파일을 다룰 때는 파일 모드를 잘 선택해야 합니다.
잘못 선택하면 중요한 데이터를 잃어버릴 수도 있어요!
'시스템 개발 및 관리 > Windows 환경 파일 자동화' 카테고리의 다른 글
파이썬으로 일기 템플릿 30개 자동 생성하기 (0) | 2025.03.21 |
---|---|
Python 파일 다루기: 텍스트 파일 내용 추가 및 수정 (1) | 2025.03.21 |
파이썬으로 여러 텍스트 파일 하나로 합치기: 수강 후기 자동 정리 (1) | 2025.03.21 |
파이썬으로 파일을 안전하게 다루는 방법: 자원 관리와 with문 활용 (0) | 2025.03.21 |
실전 자동화 문제: 보고서 직전에 파일 이름 일괄 변경하기!📝 문제 상황 (0) | 2025.03.21 |