我是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:UsersxxPython%s'%attachment
print filename
attachment.WriteToFile(filename)
message = messages.GetNext()
它运行得很好,如果我摆脱'attachment.WriteToFile(filename)'。但是,该特定语句生成错误:
Traceback (most recent call last):
File "C:Usersxx.spyder2.temp.py", line 31, in <module>
attachment.WriteToFile(filename)
File "C:Python27libsite-packageswin32comclientdynamic.py", line 522, in __getattr__
raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: Item.WriteToFile
有人知道出了什么问题吗?由于
而不是:
attachment.WriteToFile(filename)
试题:
attachment.SaveAsFile(filename)
我认为WriteToFile是当你从Exchange服务器本身检索附件时使用的。
SaveAsFile用于保存从Outlook本地读取的附件
AttributeError告诉您Item对象没有一个名为WriteToFile的方法(或函数)。