quopri.md
1> **Источник:** https://python-all.ru/3.4/library/quopri.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 19.9. [`quopri`](https://python-all.ru/3.4/library/quopri.html#module-quopri) – Кодирование и декодирование MIME quoted-printable данных89**Исходный код:** [Lib/quopri.py](https://python-all.ru/src/3.4/Lib/quopri.py)1011---1213Этот модуль выполняет транспортное кодирование и декодирование в формате quoted-printable, как определено в [**RFC 1521**](https://python-all.ru/3.4/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.4/library/base64.html#module-base64), является более компактной при наличии большого количества таких символов, например при отправке графического файла.1415#### `quopri.decode(input, output, header=False)`1617Декодирует содержимое файла *input* и записывает полученные декодированные двоичные данные в файл *output*. *input* и *output* должны быть [*двоичными файловыми объектами*](https://python-all.ru/3.4/glossary.html#term-file-object). Если необязательный аргумент *header* присутствует и равен true, символ подчеркивания будет декодирован как пробел. Это используется для декодирования заголовков, закодированных в формате «Q», как описано в [**RFC 1522**](https://python-all.ru/3.4/library/quopri.html): «MIME (Multipurpose Internet Mail Extensions) Часть 2: Расширения заголовков сообщений для не-ASCII текста».1819#### `quopri.encode(input, output, quotetabs, header=False)`2021Кодирует содержимое файла *input* и записывает полученные данные в формате quoted-printable в файл *output*. *input* и *output* должны быть [*двоичными файловыми объектами*](https://python-all.ru/3.4/glossary.html#term-file-object). *quotetabs* – флаг, определяющий, нужно ли кодировать встроенные пробелы и табуляции; должен быть указан; когда true, он кодирует такие встроенные пробелы, а когда false – оставляет их без кодирования. Обратите внимание, что пробелы и табуляции в конце строк всегда кодируются, согласно [**RFC 1521**](https://python-all.ru/3.4/library/quopri.html). *header* – флаг, определяющий, кодируются ли пробелы как символы подчеркивания согласно [**RFC 1522**](https://python-all.ru/3.4/library/quopri.html).2223#### `quopri.decodestring(s, header=False)`2425Как и [`decode()`](https://python-all.ru/3.4/library/quopri.html#quopri.decode), за исключением того, что он принимает исходный [`bytes`](https://python-all.ru/3.4/library/functions.html#bytes) и возвращает соответствующие декодированные [`bytes`](https://python-all.ru/3.4/library/functions.html#bytes).2627#### `quopri.encodestring(s, quotetabs=False, header=False)`2829Как и [`encode()`](https://python-all.ru/3.4/library/quopri.html#quopri.encode), за исключением того, что он принимает исходный [`bytes`](https://python-all.ru/3.4/library/functions.html#bytes) и возвращает соответствующие закодированные [`bytes`](https://python-all.ru/3.4/library/functions.html#bytes). По умолчанию он передает значение False параметру *quotetabs* функции [`encode()`](https://python-all.ru/3.4/library/quopri.html#quopri.encode).3031> **См. также**32>33> **Модуль [`base64`](https://python-all.ru/3.4/library/base64.html#module-base64)**34>35> Кодирование и декодирование данных base64 MIME36