Python에서 파일을 읽고 쓰는 작업은 매우 일반적입니다.
특히 한글과 같은 비ASCII 문자를 포함하는 데이터를 다룰 때, 올바른 인코딩을 사용하지 않으면 데이터가 깨질 수 있습니다. encoding='utf-8'를 사용하여 이 문제를 해결할 수 있습니다.

다음은 Python에서 파일 읽기와 쓰기 예제와 함께, encoding='utf-8'을 사용하는 방법을 보여주는 간단한 코드입니다.

파일 쓰기 예제

먼저 한글이 포함된 텍스트를 파일에 저장하는 예제입니다.

# 파일 쓰기 예제
file_path = 'example.txt'
text_to_write = '안녕하세요, 파이썬 파일 입출력 예제입니다.'

# UTF-8 인코딩을 사용하여 파일에 쓰기
with open(file_path, 'w', encoding='utf-8') as file:
    file.write(text_to_write)

print(f"{file_path} 파일에 텍스트가 저장되었습니다.")

파일 읽기 예제

다음으로, 앞서 저장한 파일을 읽어들이는 예제입니다.

# 파일 읽기 예제
file_path = 'example.txt'

# UTF-8 인코딩을 사용하여 파일 읽기
with open(file_path, 'r', encoding='utf-8') as file:
    content = file.read()

print("파일 내용:")
print(content)

인코딩 원리 설명

encoding='utf-8'의 원리는 다음과 같습니다:

  1. 인코딩: 텍스트 데이터를 특정 인코딩 방식(예: UTF-8)으로 변환하여 파일에 저장합니다. UTF-8은 유니코드 문자를 효율적으로 인코딩하는 방식으로, 한글과 같은 다국어 문자를 지원합니다.
  2. 디코딩: 파일에서 데이터를 읽을 때, 저장된 인코딩 방식을 사용하여 텍스트 데이터를 다시 파이썬 문자열로 변환합니다.

UTF-8을 사용하면 다음과 같은 장점이 있습니다:

  • 호환성: 대부분의 텍스트 편집기와 시스템에서 지원합니다.
  • 유니코드 지원: 다양한 언어와 문자를 효율적으로 저장할 수 있습니다.
  • 효율성: 영어와 같은 ASCII 문자는 1바이트로 저장되며, 한글과 같은 비ASCII 문자는 2-4바이트로 저장됩니다.

이러한 방식을 사용하면 한글을 포함한 데이터를 파일에 안전하게 저장하고, 다시 읽어들일 때 깨짐 없이 사용할 수 있습니다.

+ Recent posts