zlib, base64, rot13 エンコーディング

この記事は Python Tips Advent Calendar 2012 22日目の記事です。


Python でデータを圧縮したい時、通常は zlib モジュールを使ったりするかもしれませんが、特に特殊な指定を必要としないのであれば、encode 関数で事足ります。

>>> s = 'Hello World!!'
>>> s.encode('zlib')
'x\x9c\xf3H\xcd\xc9\xc9W\x08\xcf/\xcaIQT\x04\x00 \xa8\x04_'
>>> s.encode('zlib').decode('zlib')
'Hello World!!'

同様に base64 もあるので、単純な利用の場合はこちらを使うといいでしょう。

>>> s.encode('base64')
'SGVsbG8gV29ybGQhIQ==\n'
>>> s.encode('base64').decode('base64')
'Hello World!!'

あとは rot13 というのもあります。
これは a-z と A-Z を 13 個ローテートさせる、単純な暗号化です。アルファベットは 26 文字あるので、2回エンコードすると元に戻ります。

>>> s.encode('rot13')
'Uryyb Jbeyq!!'
>>> s.encode('rot13').encode('rot13')
'Hello World!!'


.