본문 바로가기
프로그래밍언어/파이썬[Error]

[파이썬][Error] 088. PermissionError - cannot write to read-only file

by about_IT 2025. 5. 31.
728x90

PermissionError: cannot write to read-only file 오류는 쓰기 권한이 없는 파일을 수정하거나 덮어쓰려 할 때 발생합니다. 파일이 읽기 전용으로 설정되어 있거나, 사용자의 권한이 제한되어 있을 경우 이 오류가 발생합니다.

읽기 전용 파일은 시스템 설정, 권한 제한, 또는 다른 프로그램에서 잠금(lock) 상태로 열려 있을 수 있습니다. 이를 무시하고 open(..., 'w') 또는 'a' 모드로 접근하면 오류가 발생합니다.

● 오류 발생 예시

# 읽기 전용 파일에 쓰기 시도
with open("readonly.txt", "w") as f:
    f.write("데이터 작성")

파일이 읽기 전용으로 설정되어 있는 경우, 위 코드는 PermissionError를 발생시킵니다.

PermissionError: [Errno 13] Permission denied: 'readonly.txt'

● 해결 방법

  • 파일 속성을 확인하고 쓰기 권한이 있는지 체크
  • 필요 시 chmod 명령어로 권한 변경 (Unix)
  • Windows에서는 파일 속성에서 '쓰기 금지' 해제
  • 다른 프로세스가 파일을 사용 중인지 확인

● 예시 코드 (쓰기 가능 여부 검사)

import os
file_path = "readonly.txt"
if os.access(file_path, os.W_OK):
    with open(file_path, "w") as f:
        f.write("쓰기 성공")
else:
    print("쓰기 권한이 없습니다.")

● 자주 하는 실수

  • 시스템 보호 폴더에 파일 저장 시도
  • 다른 사용자 또는 관리자 계정의 파일을 수정 시도
  • 읽기 모드로 열린 파일을 쓰기 모드로 접근

● 결론

PermissionError - cannot write to read-only file는 파일이 읽기 전용 상태일 때 쓰기를 시도하여 발생하는 오류입니다. 파일 권한을 명확히 확인하고, 필요 시 관리자 권한으로 실행하거나 권한 설정을 변경해야 합니다.

728x90