Python으로 간단히 CSV 파일을 읽고 쓰는 방법
파이썬은 데이터 처리 및 분석을 위한 뛰어난 도구로, 특히 CSV 파일을 다루는 데 매우 유용합니다. CSV란 ‘Comma Separated Values’의 약어로, 데이터를 간편하게 텍스트 형식으로 저장하는 방식을 의미합니다. 이번 글에서는 파이썬을 활용하여 CSV 파일을 읽고 쓰는 방법에 대해 자세히 알아보도록 하겠습니다.

CSV 파일의 개요
CSV 파일은 각 줄이 데이터 기록을 포함하며, 각 필드는 쉼표로 구분되어 있습니다. 이러한 형식은 데이터의 저장 및 전송에 매우 유리하여 다양한 프로그램에서 지원됩니다. 예를 들면, 다음과 같은 형태가 있습니다:
- Name, Age, City
- John, 25, New York
- Alice, 30, Los Angeles
- Bob, 28, Chicago
위와 같은 간단한 구조 덕분에 CSV 파일은 데이터 교환 시 널리 사용되고 있습니다.
파이썬에서 CSV 파일 처리하기
파이썬에서는 내장된 csv
모듈을 통해 CSV 파일을 손쉽게 읽고 쓸 수 있습니다. 이 모듈을 활용하면 다양한 형식의 CSV 파일을 처리하고, 필요에 따라 다양한 설정을 지정할 수 있습니다.
CSV 파일 읽기
CSV 파일을 읽기 위해서는 csv.reader()
함수를 사용합니다. 다음은 CSV 파일을 열고 데이터를 읽는 예제입니다:
import csv
# CSV 파일 열기
with open('data.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row) # 각 행을 출력
위 코드는 지정한 CSV 파일을 열어 각 줄을 리스트 형식으로 출력합니다. 첫 번째 행이 데이터의 헤더라면, 그 다음 행부터 실제 데이터를 읽게 됩니다.
CSV 파일 쓰기
CSV 파일에 데이터를 기록하려면 csv.writer()
함수를 사용합니다. 아래는 데이터를 CSV 형식의 파일로 저장하는 예입니다:
data = [['Name', 'Age', 'City'], ['John', 25, 'New York'], ['Alice', 30, 'Los Angeles']]
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(data) # 데이터를 한 번에 작성
이 코드는 리스트 형태로 정의된 데이터를 CSV 파일로 저장합니다. newline=''
설정은 Windows 환경에서 줄 바꿈을 처리하는 데 유용합니다.
CSV 파일 처리의 다양한 옵션
CSV 모듈은 기본적으로 쉼표를 구분자로 사용하지만, 탭이나 세미콜론 등 다양한 구분자를 지정할 수 있습니다. 이를 통해 특정 형식의 CSV 파일도 문제없이 처리할 수 있습니다.
헤더 처리 및 속성 사용
CSV 파일의 첫 줄에 필드명이 포함되어 있을 경우, csv.DictReader()
를 사용하면 각 줄을 딕셔너리 형태로 읽을 수 있습니다. 이렇게 하면 필드명을 통해 데이터를 접근할 수 있어 더욱 유연한 데이터 처리가 가능합니다. 예시를 살펴보겠습니다:
with open('data_with_header.csv', 'r') as file:
reader = csv.DictReader(file)
for row in reader:
print(row) # 각 행을 딕셔너리 형태로 출력
이렇게 함으로써 각 필드명을 키로 가지는 딕셔너리 형태로 데이터를 다룰 수 있으며, 더욱 직관적으로 내용을 확인할 수 있습니다.
CSV 파일 처리 시 주의사항
CSV 파일을 다룰 때는 몇 가지 주의해야 할 점이 있습니다:
- 파일 인코딩: 한글과 같은 비 ASCII 문자가 포함된 경우, 인코딩 설정을 지정해야 오류를 방지할 수 있습니다. 예를 들어,
encoding='utf-8'
또는encoding='cp949'
를 사용합니다. - 구분자 및 특수 문자: CSV 파일은 구분자로 쉼표 외에도 다양한 문자를 사용할 수 있으므로, 파일의 실제 내용을 확인한 후 적절한 구분자를 사용해야 합니다.
- 빈 값 처리: 데이터 내에 빈 값이 있을 경우, 이를 적절하게 처리하여 데이터 분석 시 오류가 발생하지 않도록 해야 합니다.

결론
파이썬을 사용하면 CSV 파일의 읽기 및 쓰기가 매우 간편해집니다. csv
모듈을 통해 데이터 구조를 쉽게 조작할 수 있으며, 다양한 데이터 파일을 처리하는 데에 유용합니다. 데이터 분석 및 처리 작업에서 CSV 파일을 적절히 사용하면 더 효율적으로 정보를 교환하고 저장할 수 있을 것입니다. 이러한 기본적인 CSV 파일 처리 방식을 숙지함으로써 데이터 사이언스의 기초를 다질 수 있습니다.
마지막으로, CSV 파일을 사용하여 데이터를 효과적으로 관리하고 분석하는 방법을 이해하고 나면, 이는 더 큰 데이터를 다루기 위한 중요한 발판이 될 것입니다. 이처럼 데이터 처리 기술을 익히는 것은 앞으로의 데이터 기반 의사결정 및 분석에서도 큰 도움이 될 것입니다.
자주 찾으시는 질문 FAQ
CSV 파일이란 무엇인가요?
CSV 파일은 ‘Comma Separated Values’의 약자로, 각 데이터 필드가 쉼표로 구분된 텍스트 형식의 파일입니다. 이렇게 저장된 데이터는 다양한 응용 프로그램에서 쉽게 읽고 쓸 수 있습니다.
파이썬에서 CSV 파일을 어떻게 읽을 수 있나요?
파이썬에서는 csv 모듈의 csv.reader()
함수를 활용하여 CSV 파일을 읽을 수 있습니다. 이를 통해 파일의 각 줄을 리스트 형식으로 손쉽게 가져올 수 있습니다.
CSV 파일에 데이터를 어떻게 쓸 수 있나요?
데이터를 CSV 파일에 기록하려면 csv.writer()
를 사용합니다. 이 함수를 통해 리스트 형식으로 작성된 데이터를 한 번에 파일로 저장할 수 있습니다.
CSV 파일을 읽을 때 주의할 점은 무엇인가요?
CSV 파일을 처리할 때는 파일의 인코딩, 구분자 설정, 빈 값 처리를 주의해야 합니다. 특히 비 ASCII 문자가 포함된 경우 인코딩 설정을 통해 오류를 방지해야 합니다.
헤더가 있는 CSV 파일은 어떻게 처리하나요?
CSV 파일의 첫 번째 줄에 필드명이 포함된 경우, csv.DictReader()
를 사용하면 각 행을 딕셔너리 형태로 읽어들일 수 있습니다. 이렇게 하면 필드명으로 데이터에 쉽게 접근할 수 있습니다.