保存附件时出错

我是Python的新手,但遇到了一个我无法逾越的错误。


如果主题匹配给定的字符串,请编写代码以查看我的观点并提取附件(excel)。这是代码:


import win32com.client


outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")


inbox = outlook.GetDefaultFolder(6)


print "Inbox name is:", inbox.Name


messages = inbox.Items

message = messages.GetFirst ()

while message:

    if message.Subject.startswith('EOD Report'):

        attachments = message.Attachments

        if attachments.Count>=1:

            attachment = attachments.Item(1)

            filename = 'c:\Users\xx\Python\%s'%attachment

            print filename

            attachment.WriteToFile(filename)

    message = messages.GetNext()

如果我摆脱了“ attachment.WriteToFile(filename)”,它运行得很好。但是,该特定语句会产生错误:


Traceback (most recent call last):

  File "C:\Users\xx\.spyder2\.temp.py", line 31, in <module>

    attachment.WriteToFile(filename)

  File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 522, in    __getattr__

    raise AttributeError("%s.%s" % (self._username_, attr))

AttributeError: Item.WriteToFile

有人知道出什么问题了吗?谢谢


MM们
浏览 182回答 1
1回答

白衣染霜花

代替:attachment.WriteToFile(filename)尝试:attachment.SaveAsFile(filename)我认为WriteToFile适用于从Exchange服务器本身检索附件的情况。该SaveAsFile是当你保存你从Outlook本地阅读附件的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python