quopri.md
1> **Источник:** https://python-all.ru/2.7/library/quopri.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 18.15. [`quopri`](https://python-all.ru/2.7/library/quopri.html#module-quopri) – Кодирование и декодирование MIME quoted-printable данных89**Исходный код:** [Lib/quopri.py](https://python-all.ru/src/2.7/Lib/quopri.py)1011---1213Этот модуль выполняет кодирование и декодирование транспортной кодировки quoted-printable, как определено в [**RFC 1521**](https://python-all.ru/2.7/library/quopri.html): «MIME (Multipurpose Internet Mail Extensions) Часть 1: Механизмы спецификации и описания формата тел интернет-сообщений». Кодировка quoted-printable предназначена для данных, в которых относительно мало непечатаемых символов; схема кодирования base64, доступная через модуль [`base64`](https://python-all.ru/2.7/library/base64.html#module-base64), более компактна, если таких символов много, например, при отправке графического файла.1415#### `quopri.decode(input, output[, header])`1617Декодирует содержимое файла *input* и записывает полученные декодированные двоичные данные в файл *output*. *input* и *output* должны быть файловыми объектами или объектами, имитирующими интерфейс файлового объекта. *input* читается до тех пор, пока `input.readline()` не вернёт пустую строку. Если необязательный аргумент *header* присутствует и равен true, символ подчёркивания декодируется как пробел. Это используется для декодирования заголовков, закодированных в формате «Q», как описано в [**RFC 1522**](https://python-all.ru/2.7/library/quopri.html): «MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text».1819#### `quopri.encode(input, output, quotetabs)`2021Кодирует содержимое файла *input* и записывает полученные quoted-printable данные в файл *output*. *input* и *output* должны быть файловыми объектами или объектами, имитирующими интерфейс файлового объекта. *input* читается до тех пор, пока `input.readline()` не вернёт пустую строку. *quotetabs* – это флаг, который управляет кодированием встроенных пробелов и табуляций; если true, он кодирует такие встроенные пробельные символы, а если false – оставляет их незакодированными. Обратите внимание, что пробелы и табуляции в конце строк всегда кодируются, согласно [**RFC 1521**](https://python-all.ru/2.7/library/quopri.html).2223#### `quopri.decodestring(s[, header])`2425Как [`decode()`](https://python-all.ru/2.7/library/quopri.html#quopri.decode), за исключением того, что принимает исходную строку и возвращает соответствующую декодированную строку.2627#### `quopri.encodestring(s[, quotetabs])`2829Как [`encode()`](https://python-all.ru/2.7/library/quopri.html#quopri.encode), за исключением того, что принимает исходную строку и возвращает соответствующую закодированную строку. *quotetabs* является необязательным (по умолчанию 0) и передаётся напрямую в [`encode()`](https://python-all.ru/2.7/library/quopri.html#quopri.encode).3031> **См. также**32>33> **Модуль [`mimify`](https://python-all.ru/2.7/library/mimify.html#module-mimify)**34>35> Общие утилиты для обработки MIME-сообщений.36>37> **Модуль [`base64`](https://python-all.ru/2.7/library/base64.html#module-base64)**38>39> Кодирование и декодирование данных base64 MIME40