Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python)에서 유니코드(UTF-8) 파일을 읽고 쓰는 방법

파이썬에서 유니코드(UTF-8)로 인코딩된 파일을 다룰 때는 io 모듈을 사용하는 것이 권장됩니다. io 모듈은 파이썬 3의 open() 문법과 완전히 호환되며, 인코딩 방식을 명시적으로 지정할 수 있어 한글을 포함한 다국어 텍스트를 안전하고 일관성 있게 처리할 수 있습니다.

기본 예제

다음 코드는 UTF-8로 인코딩된 파일을 읽고, 처리한 뒤 다시 같은 파일에 저장하는 기본적인 방법을 보여줍니다.

import io

# UTF-8 파일 읽기
with io.open(filename, 'r', encoding='utf8') as f:
    text = f.read()

# 유니코드 텍스트 처리

# UTF-8 파일에 쓰기
with io.open(filename, 'w', encoding='utf8') as f:
    f.write(text)

코드 설명

  • encoding='utf8': 파일을 읽거나 쓸 때 사용할 문자 인코딩을 UTF-8로 지정합니다. 이 옵션을 생략하면 시스템 기본 인코딩이 사용되어 환경에 따라 한글이 깨질 수 있습니다.
  • with 문: 파일 작업이 끝나면 자동으로 파일을 닫아주므로 리소스 누수를 방지할 수 있습니다.

파이썬 3에서의 간소화된 방법

파이썬 3부터는 내장 open() 함수가 encoding 매개변수를 기본적으로 지원하므로, 굳이 io 모듈을 임포트하지 않고도 동일한 작업을 수행할 수 있습니다.

# 파이썬 3 내장 open 함수 사용
with open(filename, 'r', encoding='utf-8') as f:
    text = f.read()

with open(filename, 'w', encoding='utf-8') as f:
    f.write(text)

참고 사항

인코딩을 항상 명시적으로 지정하는 습관을 들이면 운영체제나 로캘 설정에 따른 인코딩 오류(UnicodeDecodeError, UnicodeEncodeError)를 예방할 수 있으며, 특히 한글 텍스트를 다룰 때 필수적입니다.