본문 바로가기
프로그래밍/[Python] 파이썬

[Python] 파이썬 CSV 파일 한글 깨지는 문제 3가지 해결 방법

by GenieIT* 2025. 3. 9.
728x90
반응형
반응형

 


 

CSV 파일에서 한글이 깨지는 이유는 주로 인코딩(encoding) 문제 때문입니다. 따라서 파일을 저장할 때 인코딩을 적절히 설정하면 한글이 깨지는 문제를 해결할 수 있습니다.

 


 

utf-8-sig 인코딩 사용하기

utf-8 인코딩을 사용하면 한글이 정상적으로 표시되지만, 일부 프로그램(특히 엑셀)에서 읽을 때 한글이 깨질 수 있습니다. 이를 방지하려면 utf-8-sig를 사용하세요.

✅ CSV 파일 쓰기 (utf-8-sig) :

import csv

data = [
    ["이름", "나이", "직업"],
    ["김철수", 25, "개발자"],
    ["이영희", 30, "디자이너"]
]

with open('output.csv', mode='w', encoding='utf-8-sig', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

print("CSV 파일이 utf-8-sig로 저장되었습니다.")

🎯 실행 결과 :

파이썬 csv 엑셀 한글 깨짐 해결
파이썬 csv 엑셀 한글 깨짐 해결

 


 

pandas에서 utf-8-sig 인코딩 사용하기

✅ pandas에서 CSV 파일 쓰기 (utf-8-sig) :

import pandas as pd

df = pd.DataFrame([
    ["김철수", 25, "개발자"],
    ["이영희", 30, "디자이너"],
    ["박용수", 35, "인사총무"]
], columns=["이름", "나이", "직업"])

df.to_csv('output.csv', index=False, encoding='utf-8-sig')

print("CSV 파일이 utf-8-sig로 저장되었습니다.")

🎯 실행 결과 :

파이썬 pandas 엑셀 한글깨짐 해결
파이썬 pandas 엑셀 한글깨짐 해결

 


728x90

cp949 또는 euc-kr 인코딩 사용하기

Windows의 메모장이나 엑셀에서 CSV를 열었을 때 한글이 깨진다면, cp949(또는 euc-kr) 인코딩을 사용하면 해결됩니다.

✅ CSV 파일 쓰기 (cp949) :

import csv

data = [
    ["이름", "나이", "직업"],
    ["김철수", 25, "개발자"],
    ["이영희", 30, "디자이너"]
]

with open('output.csv', mode='w', encoding='cp949', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

cp949와 euc-kr은 Windows에서 잘 동작하지만, Mac/Linux 환경에서는 깨질 가능성이 있음.

 

 

 

 

728x90
반응형