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 메타데이터를 가집니다.