본문 바로가기
파이썬

파이썬에서 CSV 파일 다루기

by blacknabis 2024. 4. 21.

파이썬에서 CSV 파일 다루기: 초보자를 위한 안내서

CSV 파일은 'Comma-Separated Values'의 약자로, 각 데이터 항목이 쉼표로 구분된 텍스트 파일입니다. 데이터를 저장하고 분석하는 가장 간단한 방법 중 하나이며, 파이썬의 csv 모듈을 사용하면 이러한 파일을 쉽게 다룰 수 있습니다. 이 블로그 포스트에서는 파이썬을 이용하여 CSV 파일을 읽고, 쓰고, 수정하는 방법을 단계별로 알아보겠습니다.

1. CSV 파일 읽기

CSV 파일을 읽기 위해서는 파이썬의 내장 모듈인 csv를 사용합니다. 먼저, csv.reader 객체를 사용하여 파일을 읽어올 수 있습니다.

import csv

filename = 'example.csv'

with open(filename, mode='r', encoding='utf-8') as file:
    csv_reader = csv.reader(file)
    for row in csv_reader:
        print(row)

이 코드는 CSV 파일을 열고, 각 행을 읽어 리스트 형태로 반환합니다. 각 행은 데이터의 리스트로, 필드는 쉼표로 구분됩니다.

2. CSV 파일 쓰기

CSV 파일에 데이터를 쓰려면 csv.writer 객체를 사용합니다. 데이터를 쓰는 기본적인 방법은 다음과 같습니다.

import csv

data = [
    ['name', 'age', 'city'],
    ['Alice', '24', 'New York'],
    ['Bob', '27', 'Los Angeles']
]

filename = 'output.csv'

with open(filename, mode='w', newline='', encoding='utf-8') as file:
    csv_writer = csv.writer(file)
    for row in data:
        csv_writer.writerow(row)

여기서 newline='' 옵션은 파일 쓸 때 줄바꿈이 두 번 일어나지 않도록 해줍니다.

3. CSV 파일 수정하기

파이썬에서는 파일 수정을 직접적으로 지원하지 않으므로, 파일을 읽고 수정한 후 다시 쓰는 방법을 사용합니다.

import csv

filename = 'example.csv'
temp_filename = 'temp.csv'

with open(filename, mode='r', encoding='utf-8') as file:
    with open(temp_filename, mode='w', newline='', encoding='utf-8') as temp_file:
        csv_reader = csv.reader(file)
        csv_writer = csv.writer(temp_file)

        for row in csv_reader:
            row[1] = int(row[1]) + 1  # 예를 들어 나이 항목 수정
            csv_writer.writerow(row)

import os
os.replace(temp_filename, filename)

이 코드는 원본 파일을 읽어 각 행의 두 번째 열(나이)에 1을 더한 후, 임시 파일에 결과를 저장합니다. 작업이 완료되면 원본 파일을 수정된 임시 파일로 대체합니다.

마무리

csv 모듈을 사용하는 것은 파이썬에서 데이터를 다루는 데 있어 매우 유용한 방법입니다. 간단한 API를 통해 데이터를 쉽게 읽고 쓰며, 필요에 따라 데이터를 수정할 수 있습니다. 이 가이드가 CSV 파일을 다루는 첫 걸음에 도움이 되기를 바랍니다!