Pythonでもオレオレ文字コードを実装したい (4)

使い方

さて、前回はコーデックを実装した状態で終わりましたので今回は実際に使ってみたいと思います。

import jyuch_kana
import codecs


def main():
    fin = codecs.open('text.txt', encoding='jyuch-kana')
    fout = codecs.open('text2.txt', 'w', encoding='jyuch-kana')

    with fin, fout:
        for it in fin:
            fout.write(it.strip() + ' せかい\n')

    with codecs.open('text2.txt', encoding='jyuch-kana') as f:
        for it in f:
            print(it.strip())


if __name__ == '__main__':
    main()

自作したコーデックを使ってファイルの入出力を行うにはcodecs.openを使わないとダメみたいです。 エンコード名には検索関数のところで付けた自分のコーデック名を指定してあげます。 後は普通のファイル操作と同じように扱えます。

もちろん最初に読み込むファイルはちゃんとJyuch-Kanaのフォーマットに従っていないとダメです。

なお、最初にimport jyuch_kanaをしているのは一回インポートしないとレジストリに登録がされない為です。 この辺をうまくなんとかする方法とかないですか?

まとめ

  • 符号化文字集合を定義するのは割と大変
  • ステートレスならエンコーダ・デコーダを実装するだけでなんとかなる
  • 独自のエンコードスキームをUnicodeに変換して読み書きできるようになった
  • なんだかんだ言ってUnicodeさいきょう
  • おなかすいたラーメン食べたい

なお、全体のコードはGistにあります。

Pythonでもオレオレ文字コードを実装したい

おわり