파이썬에서 CSV 파일을 읽을 때 필드명을 직접 지정하기

파이썬으로 CSV 파일을 읽을 때 헤더 필드명을 직접 정의해서 사용하고 싶을 때가 있다. 이때는 다음과 같이 DictReader 객체를 생성할 때 fieldnames 인수를 직접 지정하면 된다.

with open(filename) as csvfile:
    csv_reader = csv.DictReader(csvfile, fieldnames=['제목', '저자', '페이지수'])

그리고 간혹 텍스트 파일을 읽을 때 \ufeff 문자가 붙어서 읽히는 경우가 있는데, 그럴 때는 다음과 같이 encoding 인수을 지정하는 방식으로 처리하면 된다.

with open(filename, encoding='utf-8-sig') as csvfile:
    csv_reader = csv.reader(csvfile)

\ufeff는 BOM(Bye Order Mark)인데, UTF-8 인코딩의 경우에는 BOM이 필요하지 않다고 한다. 그럼에도 간혹 파일에 포함되는 경우가 있어서 파이썬에서 encoding으로 utf-8-sig를 지정하면 해당 BOM을 무시하게 된다.

참고: python에서 \ufeff가 읽힐 때 해결방법

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다