반응형

파이썬 여러 CSV 파일 하나로 합치기는 실무에서 자주 쓰는 작업이다.

날짜별로 나뉜 파일이나 폴더별로 흩어진 데이터를 하나로 모을 때 특히 유용하다.

한 번 방법을 익혀두면 반복 업무 시간을 많이 줄일 수 있다.

 

- 기본 예제

아래 코드는 현재 폴더의 CSV 파일을 모두 읽어서 merged.csv 하나로 저장한다.

import os
import csv

folder_path = "."
csv_files = [name for name in os.listdir(folder_path) if name.endswith(".csv") and name != "merged.csv"]

header_saved = False

with open("merged.csv", "w", newline="", encoding="utf-8-sig") as out_file:
    writer = csv.writer(out_file)

    for csv_name in csv_files:
        with open(csv_name, "r", newline="", encoding="utf-8-sig") as in_file:
            reader = csv.reader(in_file)
            header = next(reader)

            if not header_saved:
                writer.writerow(header)
                header_saved = True

            for row in reader:
                writer.writerow(row)

print("merged.csv 저장 완료")

 

- 코드 흐름 정리

  1. 현재 폴더에서 csv 파일 목록을 가져온다.
  2. 결과 파일인 merged.csv는 목록에서 제외한다.
  3. 첫 번째 파일의 제목 행만 한 번 저장한다.
  4. 그다음부터는 데이터 행만 계속 추가한다.

 

- 이런 경우에 특히 유용하다

날짜별 주문 데이터 합치기

월별 매출 파일 합치기

크롤링 결과 여러 개를 한 파일로 모으기

로그 파일 요약 전 데이터 통합하기

 

- 주의할 점

  • 모든 CSV 열 구조가 같아야 한다.
  • 인코딩이 다르면 읽기 오류가 날 수 있다.
  • 제목 행을 중복 저장하지 않도록 처리해야 한다.

 

- 정리하며

파이썬 여러 CSV 파일 하나로 합치기는 csv 모듈과 파일 목록 처리만 알면 충분히 구현할 수 있다.

반복 데이터 정리에 매우 유용하므로 파일 자동화를 할 계획이라면 꼭 익혀둘 만한 주제다.

반응형

+ Recent posts