AI 활용

CSV 행 수가 안 맞는 이유, 셀 안 줄바꿈부터 확인하세요

오픈시드 2026. 10. 14. 12:42
반응형

CSV 행 수가 안 맞을 때, 셀 안 줄바꿈 확인법을 설명하는 생성 개념 표지
셀 안 줄바꿈과 CSV 데이터 건수의 차이를 설명하는 생성 개념 표지.

AI에 넘기기 전, Python으로 텍스트 줄 수와 실제 데이터 건수를 구분하는 짧은 실습입니다.

CSV에 문의가 두 건인데 자동화가 세 건으로 읽는다면, 메모 칸 안의 줄바꿈부터 보세요. 한 셀에 두 줄을 적어도 문의가 두 건으로 늘어나는 것은 아닙니다. CSV를 단순히 줄바꿈으로 자르면 이 경계를 놓칠 수 있습니다.

해결은 프롬프트를 길게 쓰는 것보다 앞단에 있습니다. CSV 전용 파서로 먼저 읽고, 헤더를 뺀 데이터 건수를 확인한 뒤 AI 요약 단계로 넘기세요. 아래 실습은 가상 데이터만 쓰며 실제 고객 정보나 AI API를 사용하지 않습니다.

1. 이 메모는 두 줄이어도 문의 한 건입니다

첫 문의의 메모에는 쉼표와 줄바꿈이 들어갑니다. 이런 값은 큰따옴표로 감싸고, 값 자체에 들어간 큰따옴표는 두 번 적는 방식이 CSV에서 쓰입니다. 파일의 형식이 다르면 구분자와 인용 규칙도 함께 확인해야 합니다.

Python 3가 설치된 컴퓨터에서 다음 내용을 csv_check.py로 저장하세요. 터미널에서 해당 폴더로 이동해 python3 csv_check.py를 실행하면 됩니다. Windows에서 Python 실행 명령이 python이면 python csv_check.py를 사용하세요. 추가 패키지는 필요 없습니다.

import csv
import io

sample = '''문의ID,메모,상태
001,"견적 요청, 오늘 중 회신
내일 오전 통화 희망",접수
002,"고객이 ""빠른 확인"" 요청",완료
'''

rows = list(csv.DictReader(io.StringIO(sample, newline="")))
print("텍스트 줄 수:", len(sample.splitlines()))
print("데이터 건수:", len(rows))
print("문의ID:", [row["문의ID"] for row in rows])
print("첫 메모:", repr(rows[0]["메모"]))

2. 줄 수 4, 데이터는 2건인지 보세요

실제 터미널 출력: 텍스트 줄 수 4, 데이터 건수 2, 문의ID 001과 002
가상 CSV를 직접 실행한 결과입니다. 헤더를 뺀 데이터는 두 건입니다.

헤더가 한 줄, 첫 메모가 두 줄, 두 번째 문의가 한 줄이라 텍스트는 4줄입니다. 하지만 CSV 파서는 따옴표 안의 줄바꿈을 같은 메모로 읽으므로 데이터는 2건입니다. 문의ID도 문자열 001, 002로 유지됩니다.

위 코드를 실행하면 첫 메모 출력에 보이는 \n은 repr()이 줄바꿈을 눈에 보이게 표시한 것입니다. 원래 메모에서 줄바꿈이 없어진 것이 아닙니다. 이 결과를 보지 않고 “한 줄을 한 고객으로 봐줘”라고 전달하면, 처음부터 잘못 나눈 데이터를 요약하게 될 수 있습니다.

3. 실제 파일은 읽는 부분만 바꾸세요

실제 파일은 아래 코드를 별도 파일로 저장해 확인하세요. 첫 행이 열 이름이고 문의ID, 메모 열이 있는 CSV를 기준으로 합니다. 문의.csv의 실제 위치와 인코딩은 먼저 확인하세요.

import csv

with open("문의.csv", encoding="utf-8", newline="") as f:
    rows = list(csv.DictReader(f))
print("데이터 건수:", len(rows))
print("문의ID:", [row["문의ID"] for row in rows])

Python 공식 문서는 CSV 파일을 열 때 newline=""을 사용하도록 안내합니다. 필드 안의 줄바꿈 처리를 CSV 모듈에 맡기기 위해서입니다. 단, UTF-8 BOM, 세미콜론 구분자, 잘못 닫힌 따옴표는 각각 다른 점검이 필요합니다. 모든 CSV를 이 코드로 해결한다고 보면 안 됩니다.

마지막으로 데이터 건수와 문의ID 목록을 나란히 확인하세요. CSV가 제대로 읽혔다는 것과 원본에 누락·중복이 없다는 것은 별개입니다. 먼저 가상 두 건으로 결과를 확인한 다음 본인의 자동화 입력 단계를 점검해 보세요.

검증 범위: Python 3.12.14에서 실행한 로컬 합성 CSV 실습. 실제 고객 시스템·AI 서비스에서 시험한 결과는 아닙니다. 공식 문서 확인일 2026년 10월 14일.

출처: Python csv 공식 문서 · RFC 4180의 CSV 필드 인용 규칙

 

csv — CSV file reading and writing

Source code: Lib/csv.py The so-called CSV (Comma Separated Values) format is the most common import and export format for spreadsheets and databases. CSV format was used for many years prior to att...

docs.python.org

 

 

RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files | RFC Editor

This RFC documents the format used for Comma-Separated Values (CSV) files and registers the associated MIME type "text/csv". This memo provides information for the Internet community.

www.rfc-editor.org

 

반응형