2013-05-24 4 views
1

저는 Python을 처음 사용하고 이전에 얻을 수없는 오류가 발생했습니다.첨부 파일을 저장하는 중 오류가 발생했습니다.

제목이 주어진 문자열과 일치하면 내 Outlook을 통과하고 첨부 파일 (엑셀)을 추출하는 코드를 작성하십시오. 내가 'attachment.WriteToFile (파일 이름)'을 제거하면 그것은 완벽하게 실행

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() 

: 여기에 코드입니다. 그러나 그 특정 진술은 오류를 생성합니다 :

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

WriteToFile과 같은 사운드는 사용할 수있는 방법이 아닙니다. 'print dir (첨부 파일)'을 추가하여 비슷한 것이 있는지 확인하거나 단순히'open (filename, 'w')'등을 사용하여 첨부 파일을 쓸 수 있습니다. –

답변

0

AttributeError는 Item 개체에 WriteToFile이라는 메서드 또는 함수가 없다는 것을 알려줍니다.

2

대신 :

attachment.WriteToFile(filename) 

시도 :

attachment.SaveAsFile(filename) 

나는 WriteToFile은 Exchange 서버 자체에서 첨부 파일을 검색 할 때입니다 생각합니다.

SaveAsFile은 Outlook에서 로컬로 읽은 첨부 파일을 저장할 때 사용됩니다.

관련 문제