19.1.13. email.iterators
:迭代器¶
源代码: Lib / email / iterators.py
使用Message.walk
方法在消息对象树上迭代是相当容易的。email.iterators
模块在消息对象树上提供了一些有用的更高级别的迭代。
-
email.iterators.
body_line_iterator
(msg, decode=False)¶ 这将遍历msg的所有子部分中的所有有效内容,逐行返回字符串有效内容。它跳过所有的子部分头部,并且跳过具有不是Python字符串的有效载荷的任何子部分。这有点等效于使用
readline()
从文件中读取消息的平面文本表示,跳过所有中间头。可选解码传递到
Message.get_payload
。
-
email.iterators.
typed_subpart_iterator
(msg, maintype='text', subtype=None)¶ 这会遍历msg的所有子部分,只返回与maintype和子类型指定的MIME类型匹配的子部分。
请注意,子类型是可选的;如果省略,则子部分MIME类型匹配仅与主类型匹配。maintype也是可选的;它默认为文本。
因此,默认情况下,
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是将输出打印到的类文件对象。它必须适用于Python的
print()
函数。级别在内部使用。include_default,如果为true,还会输出默认类型。