email.iterators
: Итераторы¶
Исходный код: Lib/email/iterators.py
Выполнение итераций по дереву объектов сообщений довольно просто с помощью метода Message.walk
. Модуль email.iterators
предоставляет несколько полезных итераций более высокого уровня по деревьям объектов сообщений.
- email.iterators.body_line_iterator(msg, decode=False)¶
Это повторяет все полезные данные во всех подразделах msg, возвращая полезные данные в виде строк построчно. При этом пропускаются все заголовки подразделов и все подразделы с полезной информацией, которая не является строкой Python. Это в некоторой степени эквивалентно чтению плоского текстового представления сообщения из файла с использованием
readline()
, пропуская все промежуточные заголовки.Необязательный параметр decode передается в
Message.get_payload
.
- email.iterators.typed_subpart_iterator(msg, maintype='text', subtype=None)¶
Это повторяет все подразделы msg, возвращая только те подразделы, которые соответствуют типу MIME, указанному в maintype и subtype.
Обратите внимание, что параметр subtype необязателен; если он опущен, то сопоставление MIME-типов подразделов выполняется только с основным типом. maintype также необязателен; по умолчанию он равен text.
Таким образом, по умолчанию
typed_subpart_iterator()
возвращает каждую вложенную часть, которая имеет MIME-тип text/*.
Следующая функция была добавлена в качестве полезного средства отладки. Ее не следует рассматривать как часть поддерживаемого открытого интерфейса для пакета.
- email.iterators._structure(msg, fp=None, level=0, include_default=False)¶
Печатает представление типов содержимого структуры объекта сообщения с отступом. Например:
>>> msg = email.message_from_file(somefile) >>> _structure(msg) multipart/mixed text/plain text/plain multipart/digest message/rfc822 text/plain message/rfc822 text/plain message/rfc822 text/plain message/rfc822 text/plain message/rfc822 text/plain text/plain
Необязательный fp - это объект, похожий на файл, в который выводятся выходные данные. Он должен соответствовать функции
print()
в Python. level используется внутри системы. include_default, если значение равно true, также выводит тип по умолчанию.