'subtitle'에 해당되는 글 1건

  1. 2011.12.30 [Python] 텍스트 파일 인코딩 변경

[Python] 텍스트 파일 인코딩 변경


배경:
몇달 전 64비트 윈도우의 필요로 Windows 7 Ultimate 영문판을 설치했다. 한글 사용을 위해서는 한글팩을 설치하고 언어환경을 변경해 주어야 하지만, 귀찮았다. -_-;;; 몇몇 국내 프로그램들의 미개한 언어셋 문제로 불편을 겪긴 하지만, 중요한 문제는 아니었기에 그냥 넘어갔으나 미드 자막을 보는데 있어 곤경에 처하게 되었다. 윈도우의 기본 한글 언어셋(cp949)에서 만들어진 자막이 영문 윈도우에서 똑바로 보이지 않는 문제가 있는 것이다. 테스트 결과 자막을 UTF-8로 변경하면 문제가 없었다. 그러나 그 많은 자막을 손수 인코딩 하는 것은 맨정신에는 곤란한 일이라고 생각된다.

환경:
Windows 7 Ultimate - ENG
Python 2.7

해법:
python을 이용하여 자막 파일을 찾아 인코딩하는 스크립트를 작성하기로 하였다.

전제:
소유하고 있는 모든 한글 자막은 cp949로 인코딩 되어있다.

코드:

# -*- coding: utf-8 -*-


import os

import os.path


rootpath = os.path.dirname( os.path.abspath( __file__ ) )


for basepath, dirs, files in os.walk(rootpath):

for filename in files:

if filename.endswith('.smi') or filename.endswith('.srt'):

filepath = os.path.join(basepath, filename)

f = file(filepath, 'r')

s = f.read()

f.close()


import shutil

shutil.copyfile(filepath, filepath + '.bak')


f = file(filepath, 'w')

f.write(unicode(s, 'cp949', 'ignore').encode('utf-8'))

f.close()



위 코드를 utf8script.py라는 파일명으로 저장한 후 커맨드라인에서 실행 시켰다.
시험적으로 적용해 본 폴더에서는 만족스럽게 동작 하였으며,
현재 결과물과 함께 미드를 감상 중이다.