python - अजगर का उपयोग करके Microsoft Outlook से मुक्त/व्यस्त स्थिति पुनर्प्राप्त




calendar (2)

मैं अजगर भाषा का उपयोग करने वाले विशेष व्यक्ति के लिए आउटलुक कैलेंडर से खाली / व्यस्त स्थिति को पुनर्प्राप्त करने की कोशिश कर रहा हूं।

यहाँ इसके लिए मेरा कोड है

import win32com.client

obj_outlook = win32com.client.Dispatch('Outlook.Application')
obj_Namespace = obj_outlook.GetNamespace("MAPI")
obj_Recipient = obj_Namespace.CreateRecipient("[email protected]")
str_Free_Busy_Data = obj_Recipient.FreeBusy("11-11-2013", 11)
print str_Free_Busy_Data

लेकिन मुझे एक त्रुटि मिल रही है:

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    str_Free_Busy_Data = obj_Recipient.FreeBusy("11-11-2013", 11)
  File "<COMObject CreateRecipient>", line 4, in FreeBusy
TypeError: an integer is required

तो मेरा प्रश्न प्राप्तकर्ता है। निःशुल्क Busy () विधि दो अनिवार्य तर्क, आरंभ तिथि और अवधि लेती है। यहां 11 की अवधि है, जो एक पूर्णांक है। तो क्यों अजगर यहाँ पूर्णांक तर्क की पहचान करने और एक TypeError लौटने में सक्षम नहीं है।

अगर मैं कुछ भी गलत किया है, तो कृपया मेरी मदद करें (मैं अभी भी अजगर दुनिया में एक नौसिखिया हूं)।

अग्रिम में धन्यवाद।


मैंने एमएसडीएन में विधि को देखा

http://msdn.microsoft.com/en-us/library/office/microsoft.office.interop.outlook.recipient.freebusy(v=office.12).aspx

विधि के लिए वाक्यविन्यास 3 तर्क लेता है।

string FreeBusy(
DateTime Start,
int MinPerChar,
Object CompleteFormat

)

मुद्दा यह है कि आप दिनांक टाइम पैरामीटर के लिए एक स्ट्रिंग पास कर रहे हैं। इसके बजाय आपको अपने कोड में डेटाटाइम लायब्रेरी आयात करने की आवश्यकता है और एक तिथि पैरामीटर का उपयोग करें।

इसलिए, अपने कोड की शुरुआत में, यह कोशिश करें।

import datetime

#Then declare the my_date variable as datetime.date.

my_date = datetime.date(2013,11,23)
str_Free_Busy_Data = obj_Recipient.FreeBusy(my_date, 11)

FreeBusy लिए पहला पैरामीटर एक Date ऑब्जेक्ट है। Pywin एक स्ट्रिंग को एक Date में परिवर्तित नहीं करेगा, लेकिन यह एक pywintypes.Time को परिवर्तित कर सकता pywintypes.Time ऑब्जेक्ट, या यूनिक्स युग के बाद सेकंड्स की संख्या का प्रतिनिधित्व करने वाला एक पूर्णांक। इसलिए त्रुटि: जब पहली तर्क को Time रूपांतरित किया जाता है, तो कंस्ट्रक्टर शिकायत करता है कि उसे पूर्णांक की आवश्यकता है।

#start date: 12/31/1969 7:00:00 PM
str_Free_Busy_Data = obj_Recipient.FreeBusy(0, 11)

एक तिथि से यूनिक्स टाइमस्टैम्प प्राप्त करने के कई तरीके हैं। पैटाथन डेटटाइम को युग को स्ट्रॉटाइम के साथ कन्वर्ट करें देखें।





outlook