我正在使用Python的email
包来分析一些电子邮件。我需要获取电子邮件的总大小,包括附件。有没有办法使用电子邮件包?我收到email.message.Message对象的方法是:
msg = email.message_from_file(inf)
我希望找到一种我可以使用的msg.getSize()
方法。
仅使用输入文件(inf
)的字节大小是否正确?
答案 0 :(得分:0)
不,没有这样的方法; email.message_from_file()
的结果是已解析的对象树,原始文件大小不会保留在其中。
您可以将对象树渲染回字符串,但是您仍然无法重现确切的原始消息大小,因为渲染可以轻松地使用微妙不同但功能相同的输出(例如多部分消息之间的边界)。 / p>
由于您有一个文件,只需从the open file object itself获取大小:
inf.seek(0, 2)
filesize = inf.tell()
答案 1 :(得分:0)
根据Martijn发布的链接,我找到了这个解决方案,我认为这可能比寻求/告知方法更好:
os.fstat(inf.fileno()).st_size