email.iterators
: 迭代器?
通過(guò) Message.walk
方法來(lái)迭代消息對象樹(shù)是相當容易的。 email.iterators
模塊提供了一些適用于消息對象樹(shù)的高層級迭代器。
- email.iterators.body_line_iterator(msg, decode=False)?
此函數會(huì )迭代 msg 的所有子部分中的所有載荷,逐行返回字符串載荷。 它會(huì )跳過(guò)所有子部分的標頭,并且它也會(huì )跳過(guò)任何包含不為 Python 字符串的載荷的子部分。 這基本上等價(jià)于使用
readline()
從一個(gè)文件讀取消息的純文本表示形式,并跳過(guò)所有中間的標頭。可選的 decode 會(huì )被傳遞給
Message.get_payload
。
- email.iterators.typed_subpart_iterator(msg, maintype='text', subtype=None)?
此函數會(huì )迭代 msg 的所有子部分,只返回其中與 maintype 和 subtype 所指定的 MIME 類(lèi)型相匹配的子部分。
請注意 subtype 是可選項;如果省略,則僅使用主類(lèi)型來(lái)進(jìn)行子部分 MIME 類(lèi)型的匹配。 maintype 也是可選項;它的默認值為 text。
因此,在默認情況下
typed_subpart_iterator()
會(huì )返回每一個(gè) MIME 類(lèi)型為 text/* 的子部分。
增加了以下函數作為有用的調試工具。 它 不應當 被視為該包所支持的公共接口的組成部分。
- email.iterators._structure(msg, fp=None, level=0, include_default=False)?
打印消息對象結構的內容類(lèi)型的縮進(jìn)表示形式。 例如:
>>> 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 是一個(gè)作為打印輸出目標的文件類(lèi)對象。 它必須適用于 Python 的
print()
函數。 level 是供內部使用的。 include_default 如果為真值,則會(huì )同時(shí)打印默認類(lèi)型。