Python,从 mbox 文件中提取原始内容
Posted
技术标签:
【中文标题】Python,从 mbox 文件中提取原始内容【英文标题】:Python, extract raw contents from mbox file 【发布时间】:2017-11-26 19:43:22 【问题描述】:在mbox
文件中,我存储了一些电子邮件:它们也可以使用 MIME。它们必须按原样在mbox
文件中提取,无需修改,使用Python3
脚本。我尝试了以下代码:
import mailbox
for message in mailbox.mbox('mboxfile'):
mstring = message.as_string()
print(mstring)
这似乎打印了电子邮件的原始内容。 mbox
中的电子邮件并不总是将\r\n
用于所有新行:有时它们只有\n
。无论如何,在message.as_string()
输出中始终使用\n
,如manual page 中所指定。
手册中还写到(关于as_string()
):
请注意,提供此方法是为了方便,可能不是在应用程序中序列化消息的最有用方法,尤其是在处理多条消息时。
我无法完全理解这个建议可能意味着什么。我的mbox
文件显然包含几封电子邮件,我想将它们全部提取出来。最重要的是,我想获得 exactly 存储在那里的相同原始电子邮件,而不需要 任何 修改并为每一行保留其 original @ 987654333@ 或\n
,就好像我在mbox
文件上使用了cat
。所以:
【问题讨论】:
【参考方案1】:如果你想要内容不做任何修改,你可以简单地print()
每个message
:
import mailbox
for message in mailbox.mbox('mboxfile.mbox'):
print(message)
带有.mbox
扩展名的文件只是很长的纯文本文件:
https://en.wikipedia.org/wiki/Mbox
还可以查看 email
模块来处理电子邮件消息:https://docs.python.org/3/library/email.message.html
【讨论】:
以上是关于Python,从 mbox 文件中提取原始内容的主要内容,如果未能解决你的问题,请参考以下文章
从 MBOX 文件中提取纯文本/文本和 html 正文到列表
使用 mobox Python 模块解码和访问 mbox 文件