Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python从mbox文件夹读取邮件_Python_Mbox - Fatal编程技术网

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

使用python从mbox文件夹读取邮件,python,mbox,Python,Mbox,我想从mbox文件中读取邮件,并在此基础上执行一些操作。我不想写/修改mbox文件,但它将被另一个进程修改(主要是添加新邮件) 我正在阅读此文档 但我不明白以下几点 我应该在阅读邮件之前调用lock()吗?(我不是写信给你 (文件) 当其他进程运行时,我是否可以得到回调 (雷鸟)修改文件 文件中的更改是否反映在mbox对象中?我的意思是,在我创建mbox对象之后,如果一封新邮件被添加到文件中,我会使用该对象访问邮件吗?或者我应该再次创建一个新对象吗 PS:我不允许安装雷鸟的任何插件:( 当您不修

我想从mbox文件中读取邮件,并在此基础上执行一些操作。我不想写/修改mbox文件,但它将被另一个进程修改(主要是添加新邮件)

我正在阅读此文档

但我不明白以下几点

  • 我应该在阅读邮件之前调用lock()吗?(我不是写信给你 (文件)
  • 当其他进程运行时,我是否可以得到回调 (雷鸟)修改文件
  • 文件中的更改是否反映在mbox对象中?我的意思是,在我创建mbox对象之后,如果一封新邮件被添加到文件中,我会使用该对象访问邮件吗?或者我应该再次创建一个新对象吗
  • PS:我不允许安装雷鸟的任何插件:(

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

    在对邮箱进行任何修改之前,应始终锁定邮箱 它的内容

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

  • 这一点也在以下文件中得到了回答:

    默认邮箱迭代器对消息表示进行迭代,而不是像 默认字典迭代器会执行此操作。此外,在迭代过程中修改邮箱 安全且定义良好。在创建迭代器后将邮件添加到邮箱 迭代器将看不到。在 迭代器将自动跳过它们,尽管使用迭代器中的键 如果随后显示相应的消息,则可能会导致>KeyError异常 删除

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


  • 您在“邮箱”文档中看到这句话了吗?“每次请求邮件时,都会根据邮箱的当前状态生成一个新的表示(通常是邮件实例)。”@jrennie我认为当前状态是指通过对象更改的状态,而不是文件更改。我尝试添加新邮件并检查长度,结果是一样的。当我再次创建新对象时,我可以看到添加的内容。