> **Источник:** https://python-all.ru/3.13/library/quopri.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# `quopri` – Кодирование и декодирование данных в формате quoted-printable MIME

**Исходный код:** [Lib/quopri.py](https://python-all.ru/src/3.13/Lib/quopri.py)

---

Этот модуль выполняет кодирование и декодирование транспортной кодировки quoted-printable, как определено в [**RFC 1521**](https://python-all.ru/3.13/library/quopri.html): «MIME (Multipurpose Internet Mail Extensions) Часть 1: Механизмы спецификации и описания формата тел интернет-сообщений». Кодировка quoted-printable предназначена для данных, в которых относительно мало непечатаемых символов; схема кодирования base64, доступная через модуль [`base64`](https://python-all.ru/3.13/library/base64.html#module-base64), более компактна, если таких символов много, например, при отправке графического файла.

#### `quopri.decode(input, output, header=False)`

Декодирует содержимое файла *input* и записывает полученные декодированные двоичные данные в файл *output*. *input* и *output* должны быть [двоичными файловыми объектами](https://python-all.ru/3.13/glossary.html#term-file-object). Если необязательный аргумент *header* присутствует и равен true, символ подчеркивания будет декодирован как пробел. Это используется для декодирования заголовков, закодированных в формате «Q», как описано в [**RFC 1522**](https://python-all.ru/3.13/library/quopri.html): «MIME (Multipurpose Internet Mail Extensions) Часть 2: Расширения заголовков сообщений для не-ASCII текста».

#### `quopri.encode(input, output, quotetabs, header=False)`

Кодирует содержимое файла *input* и записывает полученные данные в формате quoted-printable в файл *output*. *input* и *output* должны быть [двоичными файловыми объектами](https://python-all.ru/3.13/glossary.html#term-file-object). *quotetabs* – обязательный флаг, который управляет кодированием встроенных пробелов и табуляций; если true, он кодирует такие встроенные пробельные символы, а если false – оставляет их незакодированными. Обратите внимание: пробелы и табуляции в конце строк всегда кодируются, как указано в [**RFC 1521**](https://python-all.ru/3.13/library/quopri.html). *header* – флаг, который определяет, кодируются ли пробелы как символы подчеркивания в соответствии с [**RFC 1522**](https://python-all.ru/3.13/library/quopri.html).

#### `quopri.decodestring(s, header=False)`

Как и [`decode()`](https://python-all.ru/3.13/library/quopri.html#quopri.decode), за исключением того, что принимает исходные [`bytes`](https://python-all.ru/3.13/library/stdtypes.html#bytes) и возвращает соответствующие декодированные `bytes`.

#### `quopri.encodestring(s, quotetabs=False, header=False)`

Подобна [`encode()`](https://python-all.ru/3.13/library/quopri.html#quopri.encode), за исключением того, что принимает исходные [`bytes`](https://python-all.ru/3.13/library/stdtypes.html#bytes) и возвращает соответствующие закодированные `bytes`. По умолчанию передаёт значение `False` параметру *quotetabs* функции `encode()`.

> **См. также**
>
> **Модуль [`base64`](https://python-all.ru/3.13/library/base64.html#module-base64)**
>
> Кодирование и декодирование данных base64 MIME
