blogSetomits

Hello

zenhan.py

アルファベット・記号・数字・カタカナの全角・半角変換をする

以前、全角半角の変換をするクラスを作ったのですが、いちいちオブジェクトを作ってってのもなんだしということで、関数として書き直しました。おいおいクラスの方も同様に書き直そうかなと思いますが。



使い方については以下の通りです。また、ソースはこんな感じです。



追記: 2007/Jan/6 1:45

blogSetomits : zenhan.py 0.4で新しいモノについて言及しています。



インポートできる適当なところにzenhan.pyを置くなり、PythonPathを変更するなりしててインポートします。


import zenhan



全角を半角に変換するにはz2h()という関数を、半角を全角に変換するにはh2z()という関数を用います。どちらの関数もユニコード文字列を第1引数として与え、これは必須となります。第2引数として変換する対象となるものの種類を与えます。種類としてはASCII(アルファベット・記号)、DIGIT(アラビア数字)、KANA(カタカナ)の3つを用意しています。何も与えられない場合はこれら3つとも対象となります。複数指定する場合は「|」で並べます。また、返値はユニコード文字列となります。



使い方の例を記すと、


>>> org = unicode("abcDEF123456アガサダナバビプペ", "euc-jp")
>>> print zenhan.z2h(org, zenhan.ASCII).encode("euc-jp")
abcDEF123456アガサダナバビプペ
>>> print zenhan.z2h(org, zenhan.ASCII|zenhan.KANA).encode("euc-jp")
abcDEF123456アガサダナバビプペ
>>> print zenhan.h2z(org).encode("euc-jp")
abcDEF123456アガサダナバビプペ
>>> print zenhan.h2z(org, zenhan.DIGIT).encode("euc-jp")
abcDEF123456アガサダナバビプペ

という感じです。
Posted at 06:48 by setomits Comments : 5
バグを発見したので<a target="_blank" href="http://matatabi.homeip.net/app/zenhan" target="_blank">ソース</a>の修正しました。
バグの内容は、「全角文字/半角文字それぞれの文字集合の最後の1文字を、対応表に加えていなかった」ということでした。
Posted at by setomits
今度は忘れてた、というか認識から抜けてたの。
全角カナに「。(句点)」「、(読点)」「・(中黒)」「゛(濁点)」「゜(半濁点)」「「(カギかっこ開き)」「」(カギかっこ閉じ)」「ー(長音記号)」を追加。
それぞれに対応するのを半角カナにも追加。
Posted at by setomits
全角カタカナに「ヴ」を、半角カタカナに「ヴ」を追加。
忘れてたわけではないのですが、手元の環境(Emacs.app)で「ヴ」が1文字で表示できなかったのであきらめていたのでした。
Posted at by setomits
ご指摘ありがとうございます。
なるべく早く調べてから明記するようにします。
Posted at by setomits
是非、ライセンス明記を~
Posted at by 通りすがり