csv 파일을 엑셀에서 열 때 한글이 깨지는 경우
원본 파일은 ansi 인코딩이 아닐 확률이 높습니다.
해당 파일을 윈도우 메모장에서 열면,
창의 가장 아래에서 인코딩 방식을 확인할 수 있습니요.
"다른 이름으로 저장" 메뉴를 선택하고,
아래에 있는 파일 인코딩 설정을 "utf-8(bom)" 형식으로 변경하여 저장합니다.
[참고] utf-8(bom) ?
utf-8은 파일에 인코딩 정보가 없지만,
utf-8(bom)은 파일 헤더에 인코딩 정보를 알려준다는 점에서 차이가 있습니다.
아래 파이썬 코드는 utf-8로 저장된 파일을 읽어서 utf-8 BOM 형식으로 저장합니다.
import csv
# 입력 파일 이름과 출력 파일 이름 설정
input_filename = 'a.csv' # utf-8 형식
output_filename = 'a_utf8bom.csv' # utf-8bom 형식(파일 선두에 태그 있음)
try:
# a.csv 열기 (원본 파일의 인코딩 방식 지정)
# 원본 인코딩 예: cp949, utf-8(utf8), euc-kr
# 윈도우즈 경우 encoding 기본 추정 값은 cp949
with open(input_filename, mode='r', newline='', encoding='utf-8') as infile:
reader = csv.reader(infile)
data = list(reader)
# a_utf8bom.csv 파일 쓰기, utf-8-sig(UTF-8 BOM) 인코딩 적용
with open(output_filename, mode='w', newline='', encoding='utf-8-sig') as outfile:
writer = csv.writer(outfile)
writer.writerows(data)
print(f"파일 '{input_filename}'을(를) '{output_filename}'(으)로 저장했습니다(UTF-8 BOM 형식).")
except FileNotFoundError:
print(f"오류: '{input_filename}'을(를) 찾을 수 없습니다.")
except Exception as e:
print(f"오류가 발생했습니다: {e}")반응형
'Python 활용' 카테고리의 다른 글
| pyenv-win + venv으로 파이썬 버전과 가상환경 관리 (0) | 2025.10.09 |
|---|---|
| 파이썬 프로그램을 .exe 실행 파일로 만드는 방법 (PyInstaller) (0) | 2025.10.09 |
| Kivy 파이썬 App (0) | 2025.03.07 |
| Python 3.13에서 GIL을 제거하면 빨라질까? (0) | 2025.02.16 |
| 파이썬, 대화 상자에서 파일 선택하기 (0) | 2025.01.28 |
