间歇性错误文件描述

2024-04-20 11:53:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个脚本来读取邮件服务器上的邮件,并根据邮件正文的内容将它们保存在特定的文件夹中。在执行代码的这一部分时,它会间歇性地失败,通常是一天一到两次:

if not os.path.isfile(att_path) :
    # finally write the stuff
    fp = open(att_path, 'wb')
    fp.write(part.get_payload(decode=True))
    fp.close()
    ext = att_path.split(".")[-1]
    print "att_path",att_path
    f = open(att_path.replace("."+ext,".txt"),'wb')
    f.write(headers)
    f.write("\n\n\n")
    f.write(body)
    f.close()
    filelist.append(vdir+"/"+filename)
    messageReceived = True
else:
    noErrors = False
    errFiles.append(vdir+"/"+filename)

它将实际附件保存在预期的目录中,但不保存具有标题和正文信息的后续文本文件。因为抛出了异常(“[Errno 9]Bad file descriptor”),所以电子邮件不会标记为删除,而是保留在服务器上,直到删除或移动保存的附件,此时两个文件都将保存而不会出现任何错误。在

我不知道是什么原因造成的,因为它每天处理几百封邮件,没有任何问题,除了这个断断续续的问题。在


Tags: path服务器trueclose附件邮件openfilename
1条回答
网友
1楼 · 发布于 2024-04-20 11:53:45

我在使用pywin32(以Windows服务运行python)运行脚本时遇到间歇性的错误描述符错误。一个几乎相同的脚本(没有pywin32模板)在cmd中运行时没有问题。模块回溯还指向了各种打印语句,因此我注释掉了所有的打印语句,并且成功了!在

如果我错了请纠正我,我怀疑这是因为缺少标准输出。我曾经使用print语句进行调试,但在这之后切换到了日志模块。在

相关问题 更多 >