translate() 함수의 유니코드 사용법을 자꾸 잊어버려서 남겨둔다.
유니코드 문자열에서 특정 문자들을 없애거나 다른 글자로 바꿔치기 해야 할 때가 있다. 예를 들어 str 에 들어있는 글자들 중 ‘흠’, ‘ ‘, ‘.’ 문자를 지우고 싶다.
>>> str = u”한글은 잘 되나요…? 흠..”
삭제할 문자들을 문자열에 넣는다. 여기서는 ‘흠’, ‘.’, ‘ ‘ 을 지울 것이다.
>>> delch = u’.흠 ‘
여기서는 위의 문자들과 널 문자를 사전으로 만든다. ord() 함수를 이용하여, 유니코드의 문자 코드값을 얻어 키로 하고, ”를 사전키의 값으로 넣는다.
>>> delmap = dict( (ord(char), u”) for char in delch )
>>> delmap
{55136: u”, 32: u”, 46: u”}
>>> delmap
{55136: u”, 32: u”, 46: u”}
생성된 맵을 이용하여 str에 들어있는 위의 문자들을 널 문자로 치환한다.
>>> print “[%s]” % str.translate(delmap)
[한글은잘되나요?]
[한글은잘되나요?]