blogSetomits

Welcome to blogSetomits

Python 全角/半角変換モジュール zenhan.py

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

先日からいくつか修正を入れているzenhan.pyですが、またちょっと手を入れました。

これまでの修正/変更/追加は
  • マップを作る際にリストの最後の要素を加えるのを忘れていたというバグを修正
  • 全角カナに「ヴ」を、半角カナに「ヴ」を追加
  • 全角カナに「。(句点)」「、(読点)」「・(中黒)」「゛(濁点)」「゜(半濁点)」「「(カギかっこ開き)」「」(カギかっこ閉じ)」「ー(長音記号)」を、同様にそれぞれの半角カナを追加
というもの。

で、今回は2つの追加。
  • これまでの定数ASCII(アスキー文字)/DIGIT(数字)/KANA(カタカナ)に加え、ALLを追加。ALLは「これら全てをさします
  • 実際に変換を行う関数であるz2h()/h2z()に、無視する文字を渡すために3番目の引数を用意。複数個の場合はタプルで渡して下さい
というもの。

「無視する文字を」というのは、「全角の英数記号を半角にしたいんだけど、"〜"は全角のままの方が良い」とか「半角の英数記号を全角にしたいんだけど、" (空白)"は半角のままの方が良い」などというシチュエーションに対応するべく用意したのです。
また、ALLをを追加したのは、「無視する文字」を指定するには第2引数を書かなくちゃいけないわけで、全てを列挙するのはヤだなと思ったからです。

というわけで、ソースはこれまでと同じとこにあります。

>>> import zenhan >>> org = unicode("3500〜4000個/cm2程度と予測されている", "euc-jp") >>> print org.encode("euc-jp") 3500〜4000個/cm2程度と予測されている >>> print zenhan.z2h(org).encode("euc-jp") 3500~4000個/cm2程度と予測されている >>> print zenhan.z2h(org, zenhan.ALL, unicode("〜", "euc-jp")).encode("euc-jp") 3500〜4000個/cm2程度と予測されている

テストプログラムの中では
unicode("〜", "euc-jp")
の部分は、
u"〜"
としているのですが、ターミナルではこれでは駄目でした。うーん。

追記: 2007/Jan/6 1:45
blogSetomits : zenhan.py 0.4で新しいモノについて言及しています。
Posted at 02:18 by setomits
Leave your comment