我想从mbox文件中读取邮件并根据它执行一些操作。我不想编写/修改mbox文件,但它会被另一个进程修改(主要是添加新邮件)。
我正在阅读此文档。 http://docs.python.org/library/mailbox.html#mailbox.mbox
但我不明白以下
PS:我不允许安装任何雷鸟插件:(
答案 0 :(得分:2)
当您不修改mbox时,无需致电Mailbox.lock()
。引自Mailbox.lock()
的文件(强调我自己):
在进行任何修改之前,您应始终锁定邮箱 它的内容。
文件更改通知超出了邮箱模块的范围。在Linux系统上,您可以使用pyinotify来获得此功能。
默认的邮箱迭代器迭代消息表示,而不是密钥 默认字典迭代器。而且,在迭代期间修改邮箱 是安全和明确的。创建迭代器后添加到邮箱的消息 迭代器不会看到它。在邮箱之前删除邮件 虽然使用迭代器中的键,但是会以静默方式跳过迭代器产生它们 可能导致>如果随后是相应的消息,则为KeyError异常 除去。
简而言之,您需要在mbox文件更改后创建新的Mailbox
实例。