본문 바로가기
다양한 TIP

Python file open read error(f.readline()UnicodeDecodeError)

by 유기농프로그래밍 2020. 10. 18.
반응형

python에서 파일을 읽을 때 아래와 같이 에러가 나올 때가 있다.

line = f.readline()
UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position 515: illegal multibyte sequence

원인은 파일을 읽을 때 코덱이 맞지 않아서이다.

기본적으로 python3는 ANSI를 기준으로 작성된 파일을 읽는다.

따라서, UTF-8로 작성된 파일을 읽으려고 할 때 일반적인 open(filename, 'r') 을 사용한다면

위와 같은 에러가 발생한다.

 

해결하는 방법으로는 아래와 같이 encoding='utf-8' 을 추가한다.

with open('test.html', 'r', encoding='utf8') as f:

     ...

python3 부터는 ANSI 기준으로 작성된 파일만 읽을 수 있다. 

UTF-8로 작성된 파일은 보통 방법으로 읽을 때 에러가 난다. 

따라서 encoding을 잘 붙여서 에러를 줄여보자~

반응형

댓글