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!!'
.