본문 바로가기

Computer/Python

한글의 자모 분리 입력된 문자가 음절인지 확인하고, check_ch_type()음절인 경우 conv_jaso를 통해 자모 분해 & compatibility_jamo로 변환 import unicodedata def check_ch_type(ch): valid_type = ['Lo'] if unicodedata.category(ch) in valid_type: unicode_names = unicodedata.name(ch).split() if 'HANGUL' in unicode_names and 'SYLLABLE' in unicode_names: return True else: return False else: return False def conv_jaso(ch=u'각'): def conv_compatibility_jam.. 더보기
inline if 파이썬에서 if문을 한줄에 사용하고 싶을 때, expression_if_true if condition else expression_if_false 이렇게 하면 된다.위와 같은 구문은 python이 2.5 버전 이상일 때, 가능하다. 더보기
파이썬 json.dumps를 한글에 사용하는 방법 python 2.x에서... json.dumps()를 사용하면, json에서 escape가 필요한 것들을 자동으로 esacpe 해주기 때문에 아주 아주 편리하다.(다른 목적이나 원래 사용하는 목적이 따로 있을 수도 있다...) 하지만, 한글을 json.dumps()에 넣고 변환을 하면...코드값이 찍혀 불편하다. 이럴 경우에는 이렇게 하면 된다. json.dumps('한글', ensure_ascii=False) 끝. 공식 메뉴얼 : https://docs.python.org/2/library/json.html 더보기
nested list comprehesion in python 파이썬에서 리스트를 사용할 때, list comprehesion을 통해서 표현하곤 한다. 예를 들자면... for x in range(10) count(x) 이것을 list comprehension으로 표현하면... [count(x) for x in range(10)] 이런 식으로 표현을 하는 것인데... 중첩 리스트를 어떻게 표현해야 하나 헷갈리는 경우가 많다.(나는... 그렇다.) 중첩 리스트(nested list)는 다음과 같이 표현하면 된다. for i in range(10): for j in range(i): count(i, j) => [[count(i, j) for j in range(i)] for i in range(i)] 혹시 if문을 쓰고 싶다면... [[count(i, j) for j .. 더보기
python OrderedDict 파이썬을 사용하다보면 Dict의 순서가 정렬되지 않아, 정렬이 필요한 경우가 있다.이럴 때는 다음과 같이 하면 된다. from collections import OrderedDictall_ordered_dic = OrderedDict(sorted(all_dic.items(), key=lambda t: t[1]['status'])) 1. collections에서 OrderedDict를 import 한 다음... 2. lambda를 이용해서 정렬한다.여기서는 all_dic[key] = {'status': '+', ... } 와 같은 구조에서 value 중 'status' 값을 기준으로 정렬한다.sorted(all_dic.items(), key=lambda t: t[1]['status']) 3. OrderDi.. 더보기
파이썬 표준 에러(stderr) 출력 파이썬을 사용하다보면 표준 출력(stdout)과 표준 에러(stderr)를 구별해서 출력해야 할 경우가 있다.표준 출력이야 그냥 print 로 출력하면 되지만, 표준 에러는 어떻게 하는지 항상 찾아봐서 ... 하고 있었다. 이렇게 하면 된다. import sysprint >> sys.stderr, 'stderr' 또는 sys.stderr.write('stderr') 이렇게 하면 된다.(아래 참고 링크와 동일한 내용이지만, 기억하기 위해 블로깅 해 놓는다.) 참고 : http://mwultong.blogspot.com/2007/01/python-stderr.html 더보기
python2.x에서 unicodedata 사용법 파이썬(python)을 이용하여, 한글을 처리할 때 여러가지 방법이 있겠지만, 다음과 같이 unicodedata라는 클래스를 이용하면 좀 더 편리하게 처리할 수 있다. unicodedata documenation : https://docs.python.org/2/library/unicodedata.html unicode type category(5.5.1 General Category Values) : http://www.unicode.org/reports/tr44/tr44-4.html 각 unicode에 대해 어떤 category을 갖는지 확인해서 제거할 수 있으며, 한글의 경우에는 Lo(other characters)에 속한다. 아래 코드는 utf-8 문자열을 입력받아, unicode로 변환한 뒤, .. 더보기