[파이썬] CSV 파일의 delimiter와 dialect 설정

CSV (Comma Separated Values) 파일은 데이터를 쉼표로 구분하여 저장하는 파일 형식입니다. 파이썬에서는 csv 모듈을 사용하여 CSV 파일을 처리할 수 있습니다. 이 모듈을 사용하여 CSV 파일의 delimiter(구분자)와 dialect(언어/문법)을 설정할 수 있습니다.

delimiter 설정하기

CSV 파일의 delimiter는 데이터 필드가 구분되는 문자입니다. 기본적으로 쉼표가 사용되지만, 때때로 다른 구분자를 사용할 수도 있습니다. csv 모듈의 delimiter 매개 변수를 사용하여 delimiter를 설정할 수 있습니다.

import csv

with open('data.csv', 'r') as file:
    csv_reader = csv.reader(file, delimiter=';')
    for row in csv_reader:
        print(row)

위의 예제에서는 delimiter=';'를 사용하여 데이터를 세미콜론(;)으로 구분하도록 설정하였습니다. 파일을 읽을 때 csv_reader 객체를 생성할 때 delimiter를 설정해줍니다.

dialect 설정하기

CSV 파일은 기본적인 구조가 있지만, 각각의 CSV 파일은 구체적인 언어/문법 지침을 따를 수 있습니다. csv 모듈의 Dialect 클래스를 사용하여 이러한 지침을 설정할 수 있습니다.

import csv

csv.register_dialect('custom', delimiter=';', quotechar='"', quoting=csv.QUOTE_ALL)

with open('data.csv', 'r') as file:
    csv_reader = csv.reader(file, dialect='custom')
    for row in csv_reader:
        print(row)

위의 예제에서는 register_dialect 함수를 사용하여 custom이라는 dialect를 등록하였습니다. 이 dialect는 세미콜론(;)을 delimiter로, 쌍따옴표(")를 quotechar로 사용하며, 필드 값을 모두 인용 부호로 감싸도록 설정하였습니다. 파일을 읽을 때 csv_reader 객체를 생성할 때 dialect 매개 변수를 사용하여 등록한 dialect를 사용해줍니다.

CSV 파일을 처리할 때 delimiter와 dialect 설정은 파일의 구문을 제대로 인식하는 데 중요한 역할을 합니다. 적절한 delimiter와 dialect 설정을 통해 정확하게 데이터를 추출하고 사용할 수 있습니다.