매번 찾기 귀찮아서 모아두는 개발팁

[Python/csv] csv writer로 출력 시 개행문자가 두 개 출력되는 경우

archive-er 2023. 5. 3. 09:52

대충 이렇게 빈 열이 하나씩 더 출력될 때

python에서 csv로 출력하고 싶다고 하면 열에 아홉은 pandas를 쓰라고 하지만

 

가끔 알 수 없는 에러나 뭐 이런저런 이유로 python의 기본 모듈인 csv를 써야할 때가 있다

 

근데 그럼 꼭 출력된 파일 확인할 때 엔터가 두 번 쳐진것처럼 개행문자(\n)가 두 개씩 출력됨

 

일단 결론

import csv
...
with open('output.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    ...

찾아본건 아니긴한데 추측해보자면 open으로 연 파일포인터의 newline 파라미터의 디폴트값도 \n이고 csv writer의 newline 디폴트값도 \n이라서 그런거같음

 

출처: https://stackoverflow.com/questions/3191528/csv-in-python-adding-an-extra-carriage-return-on-windows

 

참고로 출처 들어가보면 방법이 하나 더 있음

wb 모드 이용해서 하는 것 같은데 newline으로 안되는 경우 생기면 써볼만한듯