全角半角に悩んだ
全角半角がなぜあるのか。
研究でプログラム組んでいるときに、いつも面倒になる文字列関係の処理。Pythonで組んでいるので幾分楽だけれども、それでも面倒なものは面倒。日本語とは、半角全角とは、どうしてこんなに面倒なのだろうか。
Pythonでの日本語の処理
とりあえず、ファイル等から読みこんだら、即unicode型にしている*1。Python3でunicode型だけになったというお話は聞くけど、自分の検証用のプログラムで新しいバージョン使うのはなんかあれだし、そもそもそんな使いこなせている気はしないから、2.7使ってる。
そんなことはどうでもいい。
全て全角にしたかった。
とある事情*2で全ての文字を全角にしたかった。今になってもあくどい方法であると自負している。最初は標準ライブラリのunicodedataを使おうと思った。けど、takakiさんのkconvというライブラリにお世話になってた。しかし、「もっといろいろ設定したい。」「他の文字にも置換したい。」とか思い始めて、放浪してた。
しゅじんこうはcnvkを見つけた。
放浪していたら、cnvk – Python で全角・半角・ひらがな・カタカナ等を変換する | Foreignkey, Inc.という記事を見つけた。標準で変換テーブルが充実してるうえ、変換テーブルを必要に応じて追加できる。これは便利だと思って使ってみた。
import cnvk print cnvk.convert(u"ぐるんぐるん", {u"る": "*"}, cnvk.HIRA2KATA) print cnvk.convert(u"ぐるんくるん", {u"る": "*"}, cnvk.HIRA2KATA, skip=u"く")
を実行したら、
グ*ング*ン グ*ンく*ン
になります。
見事卑猥な感じになった。
これからもお世話になろう、ぐへへ。