프로그래밍/파이썬 기초

Python 파일 읽어오기 인코딩 정리

상어군 2021. 10. 6. 14:13
반응형

인코딩이란?

파이썬(코딩)에서 인코딩이란 문자를 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업을 뜻한다.

인코딩 종류

인코딩의 종류는 다양하게 존재하지만, 현실적으로 우리가 주로 마주하게 되는 인코딩은 다음과 같다.

 

1. UTF-8 : 유니코드 문자 인코딩 방식 중 하나. 가장 널리 사용되는 인코딩.

2. UTF-16 : 유니코드 문자 인코딩 방식 중 하나. 기본 문자는 16비트, 그 이상의 문자는 32비트로 인코딩 됨.

3. EUC-KR : 한글 완성형 인코딩. 8비트 문자 인코딩.

4. CP949(MSWIN949) : EUC-KR의 확장 버전으로 하위 호환성을 가진다.

인코딩이 필요할 때

파일(txt, csv 등등)을 읽어올 때 아래와 같은 에러 메시지를 받을 때가 있다.

 

UnicodeDecodeError: 'utf-8' codec can't decode byte

UnicodeDecodeError: 'cp949' codec can't decode byte

 

또는 글자가 정확히 인식되지 못하고 "뛇궭" 와 같이 깨져서 나타나는 경우가 있다.

이러한 경우에는 파일의 인코딩이 맞지 않아 나타나는 현상이다.

 

인코딩 지정방법

파이썬에서 파일을 읽어오는 방법은 대표적으로 open과 pandas.read_csv가 사용된다.

두 기능 모두 인코딩의 기본 값으로 UTF-8이 설정되어 있지만 파라미터 지정이 가능하다.

f = open("data.txt", 'r', encoding='CP949')
import pandas as pd

pd.read_csv('data.csv', encoding='CP949')

 

반응형