# 18.15. `quopri` — 编码与解码经过 MIME 转码的可打印数据

源代码: Lib/quopri.py

此模块会执行转换后可打印的传输编码与解码，具体定义见 RFC 1521: “MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies”。 转换后可打印的编码格式被设计用于只包含相对较少的不可打印字符的数据；如果存在大量这样的字符，通过 `base64` 模块所提供的 base64 编码方案会更为紧凑，例如当发送图片文件时。

`quopri.``decode`(input, output[, header])

  Decode the contents of the input file and write the resulting decoded binary data to the output file. input and output must either be file objects or objects that mimic the file object interface. input will be read until `input.readline()` returns an empty string. If the optional argument header is present and true, underscore will be decoded as space. This is used to decode “Q”-encoded headers as described in RFC 1522: “MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text”.

`quopri.``encode`(input, output, quotetabs)

  Encode the contents of the input file and write the resulting quoted-printable data to the output file. input and output must either be file objects or objects that mimic the file object interface. input will be read until `input.readline()` returns an empty string. quotetabs is a flag which controls whether to encode embedded spaces and tabs; when true it encodes such embedded whitespace, and when false it leaves them unencoded. Note that spaces and tabs appearing at the end of lines are always encoded, as per RFC 1521.

`quopri.``decodestring`(s[, header])

  Like `decode()`, except that it accepts a source string and returns the corresponding decoded string.

`quopri.``encodestring`(s[, quotetabs])

  Like `encode()`, except that it accepts a source string and returns the corresponding encoded string. quotetabs is optional (defaulting to 0), and is passed straight through to `encode()`.

参见

Module `mimify`

  General utilities for processing of MIME messages.

模块 `base64`

  编码与解码 MIME base64 数据