python에서 초성/중성/종성 뽑아내기, 음소로 나누기

기록 차원에서 간단하게 적어두기.
아래 코드들은 CJKCodec 이 설치된 python 2.4부터 가능하며, 전부 unicode(utf-8)로 처리된다. 만약, CJKCodec이 안깔려있다면 CJKPython에서 받아서 깔면 된다.

1. 글자 종류 알아내기

* 코드

# -*- coding:utf-8 -*-
from unicodedata import name

str = u'가'

print name(str)[:6]

* 실행 결과

>>> HANGUL

2. 한글을 음소로 나누기

* 코드

# -*- coding:utf-8 -*-
import hangul

str = u'안'

print hangul.split(str)

* 실행 결과

>>> (u'u3147', u'u314f', u'u3134')

3. 종성(끝소리) 있는지 확인

* 코드

# -*- coding:utf-8 -*-
import hangul

str = u'안'

if hangul._has_final(str):
    print 1
else:
    print 0

* 실행 결과

>>> 1

4. 초성만 뽑아내기

* 코드

# -*- coding:utf-8 -*-
import hangul

str = u'안'

a = []
for ch in str:
    if name(ch)[:6] == 'HANGUL':
        a.append(hangul.split(ch)[0])

* 실행 결과

>>> ['ㅇ','ㄴ','ㅎ','ㅅ','ㅇ']

중성만 뽑아내려면 hangul.split(ch)[0]hangul.split(ch)[1], 종성은 hangul.split(ch)[2]이라고 하면 된다.