email.iterators
:迭代器¶
使用 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* 的所有子部分,仅返回那些与 *maintype* 和 *subtype* 指定的 MIME 类型匹配的子部分。
请注意,*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* 是一个用于打印输出的文件类对象。它必须适用于 Python 的
print()
函数。*level* 在内部使用。如果 *include_default* 为 true,则还会打印默认类型。