문제

과거에 몇 가지 Python 도구를 작성하여 Outlook 연락처에서 데이터를 추출했습니다. 자, 나는 노력하고있다 수정하다 내 Outlook 연락처. 나는 내 변화가 Outlook에 의해 언급되고 있음을 발견했지만 그들은 고집하지 않습니다. 캐시를 업데이트하는 것 같지만 실제 레코드는 아닙니다.

코드는 간단합니다.

import win32com.client
import pywintypes

o = win32com.client.Dispatch("Outlook.Application")
ns = o.GetNamespace("MAPI")
profile = ns.Folders.Item("My Profile Name")
contacts = profile.Folders.Item("Contacts")
contact = contacts.Items[43] # Grab a random contact, for this example.
print "About to overwrite ",contact.FirstName, contact.LastName
contact.categories = 'Supplier' # Override the categories

# Edit: I don't always do these last steps.
ns = None 
o = None

이 시점에서 나는 세부 주소 카드보기로 열린 Outlook으로 바뀝니다.

연락처 요약 (열지 않고)을보고 카테고리는 변경되지 않습니다 (새로 고침되지 않습니까?).

연락처를 열고 그 범주가 변경되었습니다. 때때로. (언제 확실하지 않지만, 캐시가 관련되어 있다고 느낍니다.) 변경된 경우 변경 사항을 닫을 때 변경 사항을 저장하라는 메시지가 표시됩니다.

전망을 종료하고 다시 시작하면 변경 사항이 사라집니다.

의심하다 나는 전화하지 못한다 변경 사항을 저장하다, 그러나 나는 어떤 객체가 그것을 지원하는지 볼 수 없습니다.

그래서 내 질문은 다음과 같습니다.

  • Savechanges에게 전화해야합니까? 그렇다면 어디에 있습니까?
  • 다른 어리석은 실수를하고 있는데, 이로 인해 내 데이터가 폐기되고 있습니까?
도움이 되었습니까?

해결책

연락처에 .save () 메소드가 있다고 생각하므로 다음을 추가해야합니다.

contact.save ()

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top