# 18.13. `binhex` — Encode and decode binhex4 files

This module encodes and decodes files in binhex4 format, a format allowing representation of Macintosh files in ASCII. On the Macintosh, both forks of a file and the finder information are encoded (or decoded), on other platforms only the data fork is handled.

Note

In Python 3.x, special Macintosh support has been removed.

The `binhex` module defines the following functions:

`binhex.``binhex`(input, output)

  Convert a binary file with filename input to binhex file output. The output parameter can either be a filename or a file-like object (any object supporting a `write()` and `close()` method).

`binhex.``hexbin`(input[, output])

  Decode a binhex file input. input may be a filename or a file-like object supporting `read()` and `close()` methods. The resulting file is written to a file named output, unless the argument is omitted in which case the output filename is read from the binhex file.

The following exception is also defined:

exception `binhex.``Error`

  Exception raised when something can’t be encoded using the binhex format (for example, a filename is too long to fit in the filename field), or when input is not properly encoded binhex data.

See also

Module `binascii`
  Support module containing ASCII-to-binary and binary-to-ASCII conversions.

## 18.13.1. Notes

There is an alternative, more powerful interface to the coder and decoder, see the source for details.

If you code or decode textfiles on non-Macintosh platforms they will still use the old Macintosh newline convention (carriage-return as end of line).

As of this writing, `hexbin()` appears to not work in all cases.