gpt4 book ai didi

python - 使用 python 从 mbox 文件夹中读取邮件

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:19 25 4
gpt4 key购买 nike

我想从 mbox 文件中读取邮件并根据该文件执行一些操作。我不想编写/修改 mbox 文件,但它会被另一个进程修改(主要是添加新邮件)。

我正在阅读这份文档。 http://docs.python.org/library/mailbox.html#mailbox.mbox

但是我不明白下面的内容

  1. 我应该在阅读邮件之前调用 lock() 吗? (我不是写信给文件)
  2. 无论如何我可以在其他进程时得到回调(雷鸟)修改文件?
  3. 文件中的更改是否反射(reflect)在 mbox 对象中?我的意思是,在创建 mbox 对象后,如果将新邮件添加到文件中,我是否会使用该对象访问邮件?还是应该重新创建一个新对象?

PS:我不允许安装任何thunderbird的插件:(

最佳答案

  1. 当您不修改 mbox 时,无需调用 Mailbox.lock()Mailbox.lock() 文档中的引述(强调我自己的):

    You should always lock the mailbox before making any modifications to its contents.

  2. 关于文件更改的通知超出了邮箱模块的范围。在 Linux 系统上,您可以使用 pyinotify获得此功能。

  3. 这也在 documentation 中得到了回答。 :

    The default Mailbox iterator iterates over message representations, not keys as the default dictionary iterator does. Moreover, modification of a mailbox during iteration is safe and well-defined. Messages added to the mailbox after an iterator is created will not be seen by the iterator. Messages removed from the mailbox before the iterator yields them will be silently skipped, though using a key from an iterator may result in > a KeyError exception if the corresponding message is subsequently removed.

    简而言之,您需要在 mbox 文件更改后创建一个新的 Mailbox 实例。

关于python - 使用 python 从 mbox 文件夹中读取邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8943393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com