본문 바로가기

파이썬(python3)

Python File Read : UnicodeDecodeError: 'utf-8' codec can't decode byte ...

 

  파이썬에서 파일을 읽어서 출력해보면 깨지거나, UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb1 in position 0: invalid start byte 같은 에러가 발생할 때가 있죠. 파일이 utf-8로 안되어 있는 경우에는 아래와 같이 file을 open할 때 encoding 값을 같이 전달해주면 해결 가능합니다.

 

with open('../file/path...', 'r', encoding='utf-8') as f:

 

  여기서 encoding 값을 utf-8로 변경해도 한글 안나오는 경우에는 해당 파일이 euc-kr로 인코딩 되어 있을 수 있습니다. 주로 행정기관에서 생성하는 문서들이나 파일들이 euc-kr로 되어 있는 경우가 있죠. 그럴 때는 euc-kr로 값을 변경해서 출력해보면 잘 나오는 것을 확인할 수 있습니다. 

with open('../file/path...', 'r', encoding='euc-kr') as f:

 

한글 출력 확인.

 

  파일 저장할 때도 마찬가지로 적용될 수 있습니다.