blob: 0bc8021e1bdfc7445aaf4a5ac662ef57f90e7e63 [file] [log] [blame]
:mod:`uu` --- Encode and decode uuencode files
==============================================
.. module:: uu
:synopsis: Encode and decode files in uuencode format.
.. moduleauthor:: Lance Ellinghouse
**Source code:** :source:`Lib/uu.py`
--------------
This module encodes and decodes files in uuencode format, allowing arbitrary
binary data to be transferred over ASCII-only connections. Wherever a file
argument is expected, the methods accept a file-like object. For backwards
compatibility, a string containing a pathname is also accepted, and the
corresponding file will be opened for reading and writing; the pathname ``'-'``
is understood to mean the standard input or output. However, this interface is
deprecated; it's better for the caller to open the file itself, and be sure
that, when required, the mode is ``'rb'`` or ``'wb'`` on Windows.
.. index::
single: Jansen, Jack
single: Ellinghouse, Lance
This code was contributed by Lance Ellinghouse, and modified by Jack Jansen.
The :mod:`uu` module defines the following functions:
.. function:: encode(in_file, out_file, name=None, mode=None, *, backtick=False)
Uuencode file *in_file* into file *out_file*. The uuencoded file will have
the header specifying *name* and *mode* as the defaults for the results of
decoding the file. The default defaults are taken from *in_file*, or ``'-'``
and ``0o666`` respectively. If *backtick* is true, zeros are represented by
``'`'`` instead of spaces.
.. versionchanged:: 3.7
Added the *backtick* parameter.
.. function:: decode(in_file, out_file=None, mode=None, quiet=False)
This call decodes uuencoded file *in_file* placing the result on file
*out_file*. If *out_file* is a pathname, *mode* is used to set the permission
bits if the file must be created. Defaults for *out_file* and *mode* are taken
from the uuencode header. However, if the file specified in the header already
exists, a :exc:`uu.Error` is raised.
:func:`decode` may print a warning to standard error if the input was produced
by an incorrect uuencoder and Python could recover from that error. Setting
*quiet* to a true value silences this warning.
.. exception:: Error()
Subclass of :exc:`Exception`, this can be raised by :func:`uu.decode` under
various situations, such as described above, but also including a badly
formatted header, or truncated input file.
.. seealso::
Module :mod:`binascii`
Support module containing ASCII-to-binary and binary-to-ASCII conversions.