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