保存附件时出错

时间:2013-05-24 20:09:30

标签: python attributes outlook attachment writetofile

我是Python的新手并且遇到了一个我无法通过的错误。

如果主题与给定字符串匹配,则编写代码以浏览我的Outlook并提取附件(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()

如果我摆脱了附件.WriteToFile(文件名)'它运行得非常好。但是,该特定语句会生成错误:

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

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

2 个答案:

答案 0 :(得分:2)

而不是:

attachment.WriteToFile(filename)

尝试:

attachment.SaveAsFile(filename)

我认为WriteToFile适用于从Exchange服务器本身检索附件的时间。

SaveAsFile适用于保存从Outlook本地阅读的附件。

答案 1 :(得分:0)

AttributeError告诉您Item对象没有名为WriteToFile的方法(或函数)。