Home

Python CSV 파일 완벽 가이드 읽기와 쓰기의 모든 것

Published in python
August 31, 2025
1 min read
Python CSV 파일 완벽 가이드 읽기와 쓰기의 모든 것

안녕하세요, 코딩하는곰입니다! 오늘은 Python에서 CSV 파일을 다루는 방법에 대해 깊이 있게 알아보려고 합니다. 데이터 분석이나 웹 개발을 하다 보면 CSV 파일을 다룰 일이 정말 많죠. Python의 csv 모듈을 활용하면 간단하면서도 강력하게 CSV 파일을 처리할 수 있습니다. 이 글에서는 csv.reader와 csv.writer를 중심으로 실제 프로젝트에서 바로 적용할 수 있는 실용적인 예제들과 팁들을 공개합니다!

CSV(Comma-Separated Values)는 데이터를 쉼표로 구분하는 간단한 텍스트 파일 형식입니다. Python의 내장 모듈인 csv를 사용하면 이러한 파일들을 쉽게 읽고 쓸 수 있습니다. 먼저 기본적인 csv.reader의 사용법부터 알아보겠습니다.

import csv
# CSV 파일 읽기 기본 예제
with open('data.csv', 'r', encoding='utf-8') as file:
csv_reader = csv.reader(file)
# 헤더 읽기
headers = next(csv_reader)
print(f"헤더: {headers}")
# 데이터 행 읽기
for row in csv_reader:
print(f"행 데이터: {row}")

csv.reader는 파일 객체를 받아 CSV 리더 객체를 반환합니다. 이 객체는 이터레이터로 동작하기 때문에 for 루프에서 직접 사용할 수 있습니다. encoding 매개변수를 지정하는 것은 한글 처리를 위해 매우 중요합니다. 주로 ‘utf-8’이나 ‘cp949’를 사용하게 됩니다. 다양한 구분자를 가진 CSV 파일을 처리하는 방법도 알아봅시다. 어떤 파일은 탭으로 구분된 TSV 파일일 수도 있습니다.

# 탭으로 구분된 파일 읽기
with open('data.tsv', 'r', encoding='utf-8') as file:
tsv_reader = csv.reader(file, delimiter='\t')
for row in tsv_reader:
print(row)
# 세미콜론으로 구분된 파일 읽기
with open('data_semicolon.csv', 'r', encoding='utf-8') as file:
semicolon_reader = csv.reader(file, delimiter=';')
for row in semicolon_reader:
print(row)

Python CSV 파일 완벽 가이드 읽기와 쓰기의 모든 것
Python CSV 파일 완벽 가이드 읽기와 쓰기의 모든 것


💻 프로그래밍에 관심이 많다면, (JVM 깊이보기) 자바 가상 머신의 탄생 배경과 핵심 구조 분석를 참고해보세요.

이제 CSV 파일을 작성하는 방법을 알아보겠습니다. csv.writer를 사용하면 Python 데이터를 CSV 형식으로 쉽게 저장할 수 있습니다. 기본적인 사용법부터 시작해보죠.

import csv
# 데이터 준비
data = [
['이름', '나이', '직업'],
['김철수', '30', '개발자'],
['이영희', '25', '디자이너'],
['박민수', '35', '기획자']
]
# CSV 파일 쓰기
with open('output.csv', 'w', encoding='utf-8', newline='') as file:
csv_writer = csv.writer(file)
# 모든 행 쓰기
csv_writer.writerows(data)
# 또는 행 단위로 쓰기
# for row in data:
# csv_writer.writerow(row)
print("CSV 파일 작성 완료!")

newline=” 매개변수는 Windows 환경에서 개행 문자가 이중으로 들어가는 문제를 방지합니다. writerow() 메서드는 단일 행을, writerows() 메서드는 여러 행을 한 번에 작성합니다. 더 복잡한 데이터를 처리할 때는 DictReader와 DictWriter를 사용하는 것이 더 편리합니다. 이들은 딕셔너리 형태로 데이터를 처리합니다.

# DictReader 사용 예제
with open('data.csv', 'r', encoding='utf-8') as file:
dict_reader = csv.DictReader(file)
for row in dict_reader:
print(f"이름: {row['이름']}, 나이: {row['나이']}")
# DictWriter 사용 예제
fieldnames = ['이름', '나이', '직업']
data_dict = [
{'이름': '김철수', '나이': '30', '직업': '개발자'},
{'이름': '이영희', '나이': '25', '직업': '디자이너'}
]
with open('output_dict.csv', 'w', encoding='utf-8', newline='') as file:
dict_writer = csv.DictWriter(file, fieldnames=fieldnames)
# 헤더 쓰기
dict_writer.writeheader()
# 데이터 쓰기
dict_writer.writerows(data_dict)

Python CSV 파일 완벽 가이드 읽기와 쓰기의 모든 것
Python CSV 파일 완벽 가이드 읽기와 쓰기의 모든 것


최근 당첨번호와 통계를 한눈에 보고 싶다면, AI 번호 추천과 QR코드 확인이 가능한 지니로또AI를 설치해보세요.

실제 프로젝트에서 마주칠 수 있는 다양한 상황과 그 해결 방법을 알아보겠습니다. 첫 번째로 흔히 마주치는 인코딩 문제입니다.

# 다양한 인코딩 시도
encodings = ['utf-8', 'cp949', 'euc-kr', 'iso-8859-1']
for encoding in encodings:
try:
with open('data.csv', 'r', encoding=encoding) as file:
reader = csv.reader(file)
for row in reader:
print(row)
print(f"성공적인 인코딩: {encoding}")
break
except UnicodeDecodeError:
print(f"{encoding} 인코딩 실패, 다음 시도...")

큰 CSV 파일을 처리할 때는 메모리 효율성을 고려해야 합니다. 한 번에 모든 데이터를 메모리에 로드하지 않고 처리하는 방법입니다.

# 대용량 CSV 파일 처리
def process_large_csv(filename):
with open(filename, 'r', encoding='utf-8') as file:
reader = csv.reader(file)
header = next(reader)
for i, row in enumerate(reader):
# 행 단위 처리
processed_row = process_row(row)
# 1000행마다 진행 상황 출력
if i % 1000 == 0:
print(f"처리 중: {i}행")
yield processed_row
def process_row(row):
# 개별 행 처리 로직
return [cell.upper() if isinstance(cell, str) else cell for cell in row]

CSV 데이터를 필터링하거나 변환하는 실용적인 예제도 준비했습니다.

# 조건에 맞는 데이터 필터링
def filter_csv(input_file, output_file, condition):
with open(input_file, 'r', encoding='utf-8') as infile, \
open(output_file, 'w', encoding='utf-8', newline='') as outfile:
reader = csv.reader(infile)
writer = csv.writer(outfile)
# 헤더 복사
header = next(reader)
writer.writerow(header)
# 조건에 맞는 행만 필터링
for row in reader:
if condition(row):
writer.writerow(row)
# 사용 예: 나이가 30 이상인 행만 필터링
filter_csv('input.csv', 'filtered.csv', lambda row: int(row[1]) >= 30)

Python CSV 파일 완벽 가이드 읽기와 쓰기의 모든 것
Python CSV 파일 완벽 가이드 읽기와 쓰기의 모든 것


📣 지금 화제가 되고 있는 문화행사는 바로, 2025 헤이리 판 페스티벌를 참고해보세요.

CSV 파일 처리는 Python 프로그래밍에서 기본적이면서도 매우 중요한 기술입니다. 오늘 배운 csv.reader와 csv.writer, DictReader와 DictWriter를 잘 활용하면 다양한 데이터 처리 작업을 효율적으로 수행할 수 있습니다. 실제 프로젝트에서는 인코딩 문제, 대용량 파일 처리, 데이터 필터링 등 다양한 상황에 맞게 이러한 기술들을 적용해 보세요. 궁금한 점이 있으면 언제든지 댓글로 질문해 주시기 바랍니다. 다음 시간에는 더 흥미로운 Python 주제로 찾아뵙겠습니다. 코딩하는곰이었습니다!

🎭 문화와 예술을 가까이에서 느끼고 싶다면, 안심창조밸리 연꽃마을 축제를 참고해보세요.









최상의 건강을 위한 영양가득한 식품과 정보! life-plus.co.kr 바로가기
최상의 건강을 위한 영양가득한 식품과 정보! life-plus.co.kr 바로가기



다채로운 문화축제와 공연 소식을 공유하는 블로그! culturestage.co.kr 바로가기
다채로운 문화축제와 공연 소식을 공유하는 블로그! culturestage.co.kr 바로가기



비트코인 세계로의 첫걸음! 지금 가입하고 거래 수수료 할인 혜택 받으세요! bitget.com 바로가기
비트코인 세계로의 첫걸음! 지금 가입하고 거래 수수료 할인 혜택 받으세요! bitget.com 바로가기




Tags

#developer#coding#python

Share

Previous Article
SQL이란 무엇인가? MySQL/MariaDB 개발자를 위한 완벽 가이드

Related Posts

(파이썬 기초 마스터) 함수 정의(def)와 호출, return의 모든 것 - 코딩하는곰의 친절한 가이드
December 26, 2025
3 min