시스템 개발 및 관리/Windows 환경 파일 자동화

파이썬 파일 모드 완벽 정리! (r, w, a, r+, w+, a+)

Data Jun 2025. 3. 21. 13:45

파일을 다룰 때 파일을 어떻게 열 것인지(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())  # 전체 내용 읽기

 

 

어떤 파일 모드를 써야 할까?

 

마무리

파일을 다룰 때는 파일 모드를 잘 선택해야 합니다.
잘못 선택하면 중요한 데이터를 잃어버릴 수도 있어요!