포스트

CSV 파일에 빈 줄이 생기는 문제 해결하기

문제 상황: csv.writer로 작성된 CSV 파일에 빈 줄이 포함되어 있다

CSV(Comma Separated Values) 파일을 파이썬에서 작성할 때, 각 행 사이에 빈 줄이 추가되는 문제가 종종 발생합니다. 이 문제는 주로 파이썬의 csv 라이브러리를 사용하여 Windows에서 CSV 파일을 작성할 때 나타납니다. csv.writer 클래스를 사용해 파일을 쓰면, 행과 행 사이에 빈 줄이 추가되는 것이 흔한 증상입니다. 이 글에서는 이 문제를 어떻게 해결할 수 있는지 알아보겠습니다.

에러 코드: Blank lines between each row

원인 분석: 개행문자의 차이 때문

파이썬은 기본적으로 개행문자(newline character)를 자동으로 관리합니다. Linux와 macOS에서는 ‘\n’이라는 하나의 문자로 개행이 처리되지만, Windows에서는 ‘\r\n’이라는 두 개의 문자로 개행이 처리됩니다. 이러한 차이 때문에 빈 줄이 추가되는 문제가 발생하는 경우가 많습니다.

해결 방법 1: newline='' 파라미터 추가하기

파일을 쓸 때, open 함수에 newline=''이라는 파라미터를 추가하면 이 문제를 해결할 수 있습니다.

1
2
3
4
5
6
7
import csv

with open('output.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['name', 'age'])
    writer.writerow(['Alice', 30])
    writer.writerow(['Bob', 40])

해결 방법 2: Linux나 macOS에서 작업하기

만약 작업 환경이 Windows가 아니라면 이 문제는 자연스럽게 해결됩니다. Linux나 macOS에서는 개행문자가 하나이기 때문에 빈 줄이 추가되지 않습니다.

해결 방법 3: 다른 라이브러리 사용하기

pandas라는 데이터 처리 라이브러리를 사용하면 이러한 문제를 피할 수 있습니다. pandas는 다양한 운영체제에서 일관된 결과를 제공하기 때문에 이 문제가 발생하지 않습니다.

1
2
3
4
import pandas as pd

df = pd.DataFrame({'name': ['Alice', 'Bob'], 'age': [30, 40]})
df.to_csv('output.csv', index=False)

이러한 방법들을 통해 CSV 파일에 빈 줄이 추가되는 문제를 해결할 수 있습니다. 선택하는 방법은 작업 환경과 필요에 따라 달라질 수 있으니, 가장 적합한 방법을 선택하시면 됩니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.