1:mod:`quopri` --- Encode and decode MIME quoted-printable data 2============================================================== 3 4.. module:: quopri 5 :synopsis: Encode and decode files using the MIME quoted-printable encoding. 6 7**Source code:** :source:`Lib/quopri.py` 8 9.. index:: 10 pair: quoted-printable; encoding 11 single: MIME; quoted-printable encoding 12 13-------------- 14 15This module performs quoted-printable transport encoding and decoding, as 16defined in :rfc:`1521`: "MIME (Multipurpose Internet Mail Extensions) Part One: 17Mechanisms for Specifying and Describing the Format of Internet Message Bodies". 18The quoted-printable encoding is designed for data where there are relatively 19few nonprintable characters; the base64 encoding scheme available via the 20:mod:`base64` module is more compact if there are many such characters, as when 21sending a graphics file. 22 23.. function:: decode(input, output, header=False) 24 25 Decode the contents of the *input* file and write the resulting decoded binary 26 data to the *output* file. *input* and *output* must be :term:`binary file objects 27 <file object>`. If the optional argument *header* is present and true, underscore 28 will be decoded as space. This is used to decode "Q"-encoded headers as 29 described in :rfc:`1522`: "MIME (Multipurpose Internet Mail Extensions) 30 Part Two: Message Header Extensions for Non-ASCII Text". 31 32 33.. function:: encode(input, output, quotetabs, header=False) 34 35 Encode the contents of the *input* file and write the resulting quoted-printable 36 data to the *output* file. *input* and *output* must be 37 :term:`binary file objects <file object>`. *quotetabs*, a 38 non-optional flag which controls whether to encode embedded spaces 39 and tabs; when true it encodes such embedded whitespace, and when 40 false it leaves them unencoded. 41 Note that spaces and tabs appearing at the end of lines are always encoded, 42 as per :rfc:`1521`. *header* is a flag which controls if spaces are encoded 43 as underscores as per :rfc:`1522`. 44 45 46.. function:: decodestring(s, header=False) 47 48 Like :func:`decode`, except that it accepts a source :class:`bytes` and 49 returns the corresponding decoded :class:`bytes`. 50 51 52.. function:: encodestring(s, quotetabs=False, header=False) 53 54 Like :func:`encode`, except that it accepts a source :class:`bytes` and 55 returns the corresponding encoded :class:`bytes`. By default, it sends a 56 ``False`` value to *quotetabs* parameter of the :func:`encode` function. 57 58 59 60.. seealso:: 61 62 Module :mod:`base64` 63 Encode and decode MIME base64 data 64