# 12.16 `uu` -- uuencode形式のエンコードとデコード

このモジュールではファイルをuuencode形式(任意のバイナリデータをASCII文字列 に変換したもの)にエンコード、デコードする機能を提供します。 引数としてファイルが仮定されている所では、ファイルのようなオブジェクトが 利用できます。後方互換性のために、パス名を含む文字列も利用できるようにし ていて、対応するファイルを開いて読み書きします。しかし、このインターフェー スは利用しないでください。呼び出し側でファイルを開いて(Windowsでは `'rb'`か`'wb'`のモードで)利用する方法が推奨されます。

このコードはLance Ellinghouseによって提供され、Jack Jansenによって更新さ れました。

`uu`モジュールでは以下の関数を定義しています。

`encode`( | in_file, out_file[, name[, mode]])

  in_fileをout_fileにエンコードします。 エンコードされたファイルには、デフォルトでデコード時に利用される nameとmodeを含んだヘッダがつきます。省略された場合には、 in_fileから取得された名前か`'-'` という文字と、`0666` がそれぞれデフォルト値として与えられます。

`decode`( | in_file[, out_file[, mode]])

  uuencode形式でエンコードされたin_fileをデコードして varout_fileに書き出します。もしout_fileがパス名でかつファイルを 作る必要があるときには、 modeがパーミッションの設定に使われます。 out_fileとmodeのデフォルト値はin_fileのヘッダから取得 されます。しかし、ヘッダで指定されたファイルが既に存在していた場合は、 `uu.Error`が起きます。

exception `Error`( | )

  `Exception`のサブクラスで、`uu.decode()`によって、さ まざまな状況で起きる可能性があります。上で紹介された場合以外にも、ヘッダ のフォーマットが間違っている場合や、入力ファイルが途中で区切れた場合に も起きます。

参考資料:

`binascii`モジュール:
  ASCII からバイナリへ、バイナリからASCIIへの 変換をサポートするモジュール。.