quopri.md
1> **Источник:** https://python-all.ru/3.0/library/quopri.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `quopri` – Кодирование и декодирование MIME quoted-printable данных89Этот модуль выполняет транспортное кодирование и декодирование в формате quoted-printable, как определено в [**RFC 1521**](https://python-all.ru/3.0/library/quopri.html): «MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies». Кодирование quoted-printable предназначено для данных, в которых относительно мало непечатаемых символов; схема кодирования base64, доступная через модуль [`base64`](https://python-all.ru/3.0/library/base64.html#module-base64), является более компактной при наличии большого количества таких символов, например при отправке графического файла.1011#### `[quopri.decode]quopri.decode(input, output[, header])`1213Декодирует содержимое файла1415*input*1617и записывает полученные декодированные двоичные данные в файл1819*output*2021.2223*input*2425и2627*output*2829должны быть файловыми объектами или объектами, имитирующими интерфейс файлового объекта.3031*input*3233будет читаться, пока3435`input.readline()`3637не вернёт пустую строку. Если необязательный аргумент3839*header*4041присутствует и равен true, символ подчёркивания будет декодирован как пробел. Это используется для декодирования заголовков, закодированных в формате Q, как описано в4243[**RFC 1522**](https://python-all.ru/3.0/library/quopri.html)4445: «MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text».4647#### `[quopri.encode]quopri.encode(input, output, quotetabs)`4849Кодирует содержимое файла5051*input*5253и записывает полученные quoted-printable данные в файл5455*output*5657.5859*input*6061и6263*output*6465должны быть файловыми объектами или объектами, имитирующими интерфейс файлового объекта.6667*input*6869будет читаться, пока7071`input.readline()`7273не вернёт пустую строку.7475*quotetabs*7677– это флаг, который управляет кодированием встроенных пробелов и табуляций; если true, он кодирует такие встроенные пробельные символы, а если false – оставляет их без кодирования. Обратите внимание, что пробелы и табуляции в конце строк всегда кодируются, как указано в7879[**RFC 1521**](https://python-all.ru/3.0/library/quopri.html)8081.8283#### `[quopri.decodestring]quopri.decodestring(s[, header])`8485Как и8687[`decode()`](https://python-all.ru/3.0/library/quopri.html#quopri.decode)8889, за исключением того, что принимает исходную строку и возвращает соответствующую декодированную строку.9091#### `[quopri.encodestring]quopri.encodestring(s[, quotetabs])`9293Подобна9495[`encode()`](https://python-all.ru/3.0/library/quopri.html#quopri.encode)9697, за исключением того, что принимает исходную строку и возвращает соответствующую закодированную строку.9899*quotetabs*100101необязателен (по умолчанию 0) и передается напрямую в102103[`encode()`](https://python-all.ru/3.0/library/quopri.html#quopri.encode)104105.106107> **См. также**108>109> **Модуль [`base64`](https://python-all.ru/3.0/library/base64.html#module-base64)**110>111> Кодирование и декодирование данных base64 MIME112