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