더북(TheBook)

편의상 파이썬의 csv 모듈은 CSV 리더(reader)와 라이터(writer)를 제공한다. 이들은 이미 열려 있는 텍스트 파일 핸들을 첫 번째 파라미터로 취한다(이 예제에서는 줄을 바꾸지 않으려고 newline='' 옵션을 추가해 파일을 열었다). delimiterquotechar 파라미터를 사용해서 구분자나 따옴표 문자(필드 안의 데이터를 묶는다)를 추가로 지정할 수도 있다. 다른 부가적인 파라미터로는 이스케이프 문자나 라인 제거 등이 있다.


with open("somefile.csv", newline='') as infile:

  reader = csv.reader(infile, delimiter=',', quotechar='"')


CSV 파일의 첫 번째 레코드는 보통 열의 헤더일 때가 많으며, 파일의 나머지 부분과는 다르게 처리해야 할 수도 있다. 이는 관행일 뿐 CSV 포맷의 특징은 아니다.

CSV 리더는 for 루프에서 사용할 수 있는 이터레이터 인터페이스를 제공한다. 이터레이터는 다음 레코드를 문자열 필드의 리스트로 반환한다. 리더는 필드를 수치형 데이터 타입으로 변환하지 않으며(우리가 직접 해야 한다), skipinitialspace=True 파라미터를 입력받지 않는 한 필드 앞의 공백은 제거하지 않는다.

CSV 파일의 크기를 모르거나 대용량일 가능성이 있다면 모든 레코드를 한 번에 다 읽고 싶지는 않을 것이다. 대신에 점진적이고 반복적으로 행과 행을 넘기면서 처리해 보자. 행을 읽고 처리하고 버리고는 다시 새로운 행을 읽는다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.