io.UnsupportedOperation: not readable

DB 접속 정보를 문서를 통하여 관리하기 위해서 프로젝트 ROOT 경로에 문서를 만들고 접속하기 위해서 읽는 과정에서 다음과 같은 ERROR가 발생했다. 

 

먼저는 다음과 같은 에러를 확인하면서 io.UnsupportedOperation: not readable가 무엇을 의미하는지 몰라서 os를 임포트해서 getcwd()로 프로젝트 경로를 확인해봤다. 

import os
print(os.getcwd()) # 결과 : C:\hanghae99\0주차_프로젝트\PlayList_22
f = open('dbproperties', 'w', encoding="utf-8");
dbdata = f.readline();

그러나 설정된 경로에는 큰 문제가 없었다.

 

다음으로 io.UnsupportedOperation: not readable을 생각해보면서 [유효하지 않은 조작으로 읽을 수 없다]라고 생각하고 io(입출력) 부분부터 생각을 이어나갔다. 파일을 다루는 상황이고 입`출력은 곧 파일에 쓰거나 읽거나이다. 그리고 현재 읽을 수 없는 조작을 하고 있다라고 생각을 확장해나갔다. 그러다보니 코드 상 'w' 부분을 발견했다. 이 부분에 대해서는 파이썬에서 파일을 읽고 쓰기 위한 코드를 복사 후 체크하지 않고 필요한 부분만 변경하다보니 발생한 문제였다.

 

결과적으로 'w' - >'r'로 변경하니 정상적으로 파일을 읽을 수 있었다.

 

해당 에러를 접하면서 두 가지에 대해서 알게 되었다. 파이썬에서 os 모듈을 통하여 시스템 상에 정보를 얻을 수 있다는 부분과 파일을 읽고 쓸 때 open(파일명,모드,인코딩)을 활용할 수 있다는 부분이다.