Python の全角半角処理に zenhan が便利

バリデーションとか検索とか

だいたい全角半角でどうとか変換とかかませたりする。で、Python で有名なところだと zenhan というのがある。

導入

PyPi にある。うれしい。

pip install zenhan

つかう

公式にもあるけど、ヘルプ見た感じでも難しくない

import zenhan
# バイト列
s = 'Foo'
# unicode 型に変換
if isinstanc(s, str):
    s = s.decode('utf-8')
# 全角から半角に変換
s_hankaku = zenhan.z2h(s)
print(s_hankaku) # Foo

いいですね

英数字だけ変換したい

ちょっとはまったのは、日本語部分は別にそのままでいいんだけど英数字だけ変換したいしたいということだった。オプション指定すればいいだけだった

help(zenhan)

FUNCTIONS
    h2z(text, mode=7, ignore=())
            # function convert from HANKAKU to ZENKAKU
            # argument and return: unicode string

    z2h(text='', mode=7, ignore=())
            # function convert from ZENKAKU to HANKAKU
            # argument and return: unicode string

DATA
    ALL = 7
    ASCII = 1
    DIGIT = 2
    KANA = 4
    __version__ = '0.4'

VERSION
    0.4

ということで、この場合 3 をしていてやったらうまくいった

はい

ありがたや