파이썬으로 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을 무시하게 된다.