IO.UnsupportedOperation: Python에서 쓰기 불가 오류

Manav Narula 2023년6월21일
  1. Python에서 io.UnsupportedOperation: 쓰기 불가능 오류 수정
  2. 결론
IO.UnsupportedOperation: Python에서 쓰기 불가 오류

Python은 파일에서 데이터를 읽고 쓰는 데 매우 효율적입니다. 파일 처리에 도움이 되는 다양한 기능이 있습니다.

파일 처리의 기본은 open() 함수를 사용하여 파일을 열고 파일 모드에 따라 데이터를 읽거나 쓰는 것입니다.

open()은 주어진 파일을 열고 파일에서 읽기 및 쓰기 작업을 수행하는 데 사용할 수 있는 파일 개체를 만듭니다.

파일은 다양한 유형의 모드로 열 수 있습니다. 기본적으로 읽기 모드에서 파일을 엽니다.

이 튜토리얼에서는 Python의 io.UnsupportedOperation: not writable 오류와 이를 수정하는 방법에 대해 설명합니다.

Python에서 io.UnsupportedOperation: 쓰기 불가능 오류 수정

이 오류는 읽기 모드로 열린 파일에서 쓰기 작업을 수행하려고 할 때 발생합니다. 읽기 모드로 열린 파일은 내용을 읽을 수만 있습니다.

예를 들어:

with open("sample.txt", "r") as f:
    f.write("Text")

출력:

io.UnsupportedOperation: not writable

위의 예에서 r 모드(읽기)에서 파일을 열고 write() 함수를 사용하여 이 파일에 일부 데이터를 쓰려고 시도하므로 오류가 발생합니다.

이 문제를 해결하려면 이 작업을 지원하는 모드에서 파일을 여는 것을 잊지 마십시오. 쓰기(w) 또는 추가(a) 모드는 일부 데이터를 파일에 쓰는 데 사용됩니다.

w 모드에서 파일을 열면 이전 내용이 잘립니다. a 모드는 파일 끝에 내용을 추가하고 이전 데이터를 보존합니다.

예를 들어:

with open("sample.txt", "w") as f:
    f.write("Text")

위의 예에서 성공적으로 오류를 피하고 파일에 데이터를 쓸 수 있습니다.

파일에서 데이터를 동시에 읽고 쓰려면 r+b 모드를 사용할 수 있습니다. 이 모드에서 파일을 열면 이진 모드에서 읽기 및 쓰기 작업을 수행할 수 있습니다.

예를 들어:

with open("sample.txt", "r+b") as f:
    f.write(bytes("Text", "utf-8"))

파일이 바이너리 모드로 열리기 때문에 데이터를 바이트로 씁니다. 텍스트는 위의 예에서 utf-8 인코딩의 바이트로 인코딩됩니다.

또는 writable() 함수를 사용하여 파일 핸들을 사용하여 쓰기 작업을 수행할 수 있는지 여부를 확인할 수도 있습니다. True 또는 False를 반환합니다.

아래 코드를 참조하십시오.

with open("sample.txt", "r") as f:
    print(f.writable())

with open("sample.txt", "a") as f:
    print(f.writable())

출력:

False
True

위의 예는 r 모드에서 파일을 열면 writable 함수가 False를 반환하고 a 모드에서 파일을 열면 True를 반환함을 보여줍니다.

결론

결론적으로 io.UnsupportedOperation: not writable 오류의 원인과 해결 방법에 대해 논의했습니다. 잘못된 모드에서 파일을 열면 어떻게 이 문제가 발생할 수 있고 어떤 파일 모드가 쓰기 작업을 지원하는지에 대해 논의했습니다.

또한 파일 개체가 쓰기 작업을 수행할 수 있는지 여부를 확인하는 데 사용할 수 있는 writable 함수의 사용을 시연했습니다.

작가: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

관련 문장 - Python Error