Python3 uuencode/decodeを扱う

Python3でのuuencodeについてのメモ

uuencode自体は、 uuencode - Wikipedia を参照。 要約すると、BASE64のように、主にバイナリデータをテキスト(ASCII文字列)で表現する形式。

テキストデータを変換することももちろんできる。ここでは、文字列をinput1.txtとして試した。

Pythonで扱うときは、uuモジュールを利用する。 19.10. uu — uuencode形式のエンコードとデコード — Python 3.6.5 ドキュメント

import uu

if __name__ == "__main__":
    uu.encode('input1.txt', 'output1.txt')

上のスクリプトとinput1.txtを用意して、実行すると、 エンコードされて次のような出力(output1.txt)が得られる。

begin 644 input1.txt
M26UA9VEN871I;VX@:7,@=&AE('!O=V5R('1H870@8V%N(&)E('1O;&0@=&\@
';W1H97)S+@  

end

逆に戻すときは、uu.decodeを利用する。

import uu

if __name__ == "__main__":
    uu.decode('output1.txt', 'dec1.txt')
    # uu.decode('output1.txt')

コメントアウトのように、出力ファイルは指定しなくてもいい。begin行を読み取って作成してくれる。

上のスクリプトとoutput1.txt(先ほどの出力)を用意して、実行すると、 デコードされ、元の文字列が出力される。

Imagination is the power that can be told to others.

コメント

タイトルとURLをコピーしました