我是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
有没有人知道出了什么问题?谢谢
答案 0 :(得分:2)
而不是:
attachment.WriteToFile(filename)
尝试:
attachment.SaveAsFile(filename)
我认为WriteToFile适用于从Exchange服务器本身检索附件的时间。
SaveAsFile适用于保存从Outlook本地阅读的附件。
答案 1 :(得分:0)
AttributeError告诉您Item对象没有名为WriteToFile的方法(或函数)。