Python CSV: 스프레드시트 읽기 및 쓰기
Python에서 CSV 데이터를 처리하는 방법을 알아보세요. 효율적인 테이블 구문 분석을 위한 마스터 csv.reader, csv.writer 및 DictReader/DictWriter.
개요
CSV(쉼표로 구분된 값)는 스프레드시트 및 관계형 데이터베이스에서 데이터를 내보내고 가져오기 위한 유비쿼터스 형식입니다. CSV 파일은 간단한 텍스트 파일이기 때문에 분석 도구, 데이터베이스 플랫폼 및 프로그래밍 언어에서 보편적으로 지원됩니다. Python에는 Pandas와 같은 타사 라이브러리 없이도 표 형식 데이터를 구문 분석, 작성 및 조작하는 데 특별히 최적화된 내장 `csv` 모듈이 있습니다.
csv 모듈은 목록 기반 판독기/작성기와 사전 기반 판독기/작성기라는 두 가지 기본 인터페이스를 제공합니다. `csv.reader()` 및 `csv.writer()`는 CSV의 각 행을 문자열 목록으로 표시합니다. 이는 간단하지만 숫자 인덱스로 열을 참조해야 합니다. 보다 강력한 접근 방식을 위해 개발자는 `csv.DictReader()` 및 `csv.DictWriter()`를 사용합니다. 이러한 클래스는 CSV 헤더 행을 키로 사용하여 각 행을 사전에 매핑하여 열이 재정렬되어도 깨지지 않는 읽기 쉬운 코드를 생성합니다.
CSV 파일을 처리할 때는 구문 세부정보가 중요합니다. 프로그램마다 탭이나 세미콜론과 같은 서로 다른 구분 기호를 사용하고 따옴표나 줄 끝을 서로 다른 방식으로 처리합니다. `csv` 모듈을 사용하면 'dialect' 매개변수를 통해 사용자 정의 구분 기호, 인용 규칙 및 이스케이프 문자를 정의할 수 있습니다. 또한 Python에서 CSV 파일을 열 때 다양한 운영 체제에서 빈 줄 문제를 방지하려면 `newline=''`을 `open()` 함수에 전달하는 것이 중요합니다.
코드 및 실행 출력
DictWriter를 사용하여 CSV 파일에 데이터를 쓰고 DictReader를 사용하여 다시 읽습니다.
import csv
filename = "employees.csv"
fieldnames = ["id", "name", "department"]
data = [
{"id": "101", "name": "Bob", "department": "HR"},
{"id": "102", "name": "Alice", "department": "Engineering"}
]
# Write dict data to CSV
with open(filename, "w", newline="") as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(data)
print("CSV written successfully.\n--- Reading CSV ---")
# Read CSV data back as dictionaries
with open(filename, "r", newline="") as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(f"Employee {row['name']} works in {row['department']}.")CSV written successfully.
--- Reading CSV ---
Employee Bob works in HR.
Employee Alice works in Engineering.단계별 구현
- 재무 분석을 위해 스프레드시트 레코드 내보내기
- 연락처 목록 카탈로그를 데이터베이스로 가져오기
- 계산 스크립트의 통계 출력 형식 지정
자주 묻는 질문
CSV 파일을 열 때 newline=""을 지정해야 하는 이유는 무엇입니까?
이는 특히 Windows 플랫폼에서 추가 빈 줄이 삽입되는 것을 방지하기 위해 csv 모듈의 내부 기록기에 필요합니다.
쉼표 대신 탭을 사용하는 CSV 파일을 어떻게 구문 분석할 수 있나요?
csv.reader(file, delimiter='\t')와 같이 구분 기호 매개변수를 판독기 또는 기록기에 전달할 수 있습니다.
관련 주제
권장 Python 리소스
관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.
Python에서 CSV 파일을 읽고 구문 분석하는 방법
내장된 csv 모듈을 사용하여 Python에서 CSV 파일을 읽고 구문 분석하는 방법을 알아보세요. 목록, 사전 판독기 및 사용자 정의 구분 기호로 읽기를 마스터하세요.
Python 문자열 메서드 치트 시트
Python 문자열 조작에 대한 완전한 참조 가이드입니다. 문자열 속성의 서식 지정, 검색, 분할, 바꾸기 및 확인을 마스터합니다.
Python 대 JavaScript: 어떤 프로그래밍 언어가 가장 좋나요?
Python과 JavaScript를 포괄적으로 비교합니다. 구문 차이점, 성능, 사용 사례(백엔드와 프런트엔드) 및 코딩 예제를 살펴보세요.