PHpullh

PYTHON · 파일/IO

CSV/Excel 처리

csv 모듈과 openpyxl로 CSV와 Excel 파일을 다루는 방법입니다.

파일/IO중급csvExcel파일DictReader

핵심 설명

csv 모듈과 openpyxl로 CSV와 Excel 파일을 다루는 방법입니다.

Python code

import csv
import io

# CSV 쓰기
output = io.StringIO()
writer = csv.writer(output)
writer.writerow(["이름", "나이", "도시"])
writer.writerows([
    ["Alice", 30, "서울"],
    ["Bob", 25, "부산"],
    ["Carol", 35, "대전"],
])
csv_content = output.getvalue()
print(csv_content)

# CSV 읽기
reader = csv.DictReader(io.StringIO(csv_content))
for row in reader:
    print(f"  {row['이름']} ({row['나이']}) - {row['도시']}")

# CSV 방언(dialect) 설정
csv.register_dialect("custom",
    delimiter="|", quoting=csv.QUOTE_MINIMAL)

output2 = io.StringIO()
writer2 = csv.writer(output2, dialect="custom")
writer2.writerow(["a", "b", "c"])
print(f"커스텀: {output2.getvalue()}")

# 대용량 CSV 처리 (제너레이터)
def process_csv(file_obj):
    reader = csv.DictReader(file_obj)
    for row in reader:
        yield {k: v.strip() for k, v in row.items()}

# openpyxl 패턴 (설치 필요)
# from openpyxl import Workbook
# wb = Workbook()
# ws = wb.active
# ws.append(["이름", "점수"])
# ws.append(["Alice", 95])
# wb.save("output.xlsx")
print("CSV 처리 완료")

학습 팁

DictReader는 첫 행을 헤더로 사용하여 딕셔너리로 접근할 수 있어 편리합니다.

주의할 점

CSV에 한글이 포함되면 encoding="utf-8-sig"를 사용하세요. Excel에서 UTF-8 CSV를 열 때 BOM이 필요합니다.

자주 묻는 질문

CSV/Excel 처리란 무엇인가요?

csv 모듈과 openpyxl 로 CSV와 Excel 파일을 다루는 방법입니다.

CSV/Excel 처리 학습 시 주의할 점은 무엇인가요?

CSV에 한글이 포함되면 encoding="utf-8-sig" 를 사용하세요. Excel에서 UTF-8 CSV를 열 때 BOM이 필요합니다.

Continue Learning

Python 학습을 이어가세요

총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.