Python新手在这里。我想浏览一个大型 mbox 文件,解析电子邮件。我可以这样做:
import sys
import mailbox
def gen_summary(filename):
mbox = mailbox.mbox(filename)
for message in mbox:
subj = message['subject']
print subj
if __name__ == "__main__":
if len(sys.argv) != 2:
print 'Usage: python genarchivesum.py mbox'
sys.exit(1)
gen_summary(sys.argv[1])
但我需要更多的控制。我需要能够在 mbox 文件中获取给定电子邮件开头的字节位置,并且还需要获取消息中的字节数(如磁盘上所示)。然后在未来,我不需要从 mbox 文件的开头进行迭代,而是能够查找给定的消息并对其进行解析(因此需要获取磁盘上的字节位置)。这些是大型 mbox 文件,效率是一个问题。
这一切的目的是让我可以生成一个摘要文件,其中包含有关 mbox 中每封电子邮件的一些小信息,然后在将来有效地查找 mbox 中的各个电子邮件。