2015-03-03 9 views
5

सहित एक दिन के लिए ईवेंट प्राप्त करें क्या पाइथन में एक ical फ़ाइल से दिन की घटनाएं प्राप्त करने का कोई आसान तरीका है?पायथन ical: पुनरावर्ती वाले

गैर-आवर्ती के लिए, एक दिन की घटनाओं मैं की तरह

from icalendar import Calendar 
for event in Calendar.from_ical(ical).walk('vevent'): 
    if edate > ref_ref_day_start and event.get('dtstart').dt < ref_day_end: 
     # code here 

कुछ का इस्तेमाल किया है लेकिन आवर्ती घटनाओं केवल एक बार walk में होते हैं।

मैं देख सकता हूं कि बिना अंत के घटनाओं को दोहराने के लिए एक अनंत घटना पुनरावृत्ति कैसे हो सकती है। लेकिन फिर भी मेरे द्वारा पुनरावृत्ति की गणना करने से एक आसान तरीका होना चाहिए, है ना?

(मुझे अधिक दस्तावेज नहीं मिल रहा है। मैंने पुनरावर्ती घटनाओं से संबंधित icalendar परीक्षण पढ़ा है लेकिन ऐसा कुछ ऐसा प्रतीत नहीं होता है)। Ical की

+0

(यह सवाल अभी तक हल नहीं किया गया है। मैं पहले से ही एक छोटे से इनाम है, जो समाप्त हो गई है की कोशिश की। किसी भी समाधान अभी भी बहुत स्वागत है!) – Mark

उत्तर

2

Yeah.Instead कर gcalcli

gcalcli एक अजगर आवेदन है कि आप एक कमांड लाइन से अपने Google कैलेंडर (रों) तक पहुंचने देता है द्वारा

[1]: https://github.com/insanum/gcalcli

+0

मैं परिणाम की जरूरत है पायथन में, खेद है कि थोड़ा अस्पष्ट था। क्या यह ऐसा कर सकता है (मुझे ज्यादा नहीं मिल रहा है) या केवल कमांड लाइन? – Mark

2

आप pyICSParser का उपयोग कर सकते हैं।

यह आईसीएस फ़ाइल लेगा और डेटाटाइम ऑब्जेक्ट्स की सूची में पुनरावर्ती घटनाओं की तिथियां वापस करेगा।

आपको उन घटनाओं को निर्दिष्ट करने की आवश्यकता है जिन्हें आप उन घटनाओं को वापस करना चाहते हैं, अन्यथा UNTIL या COUNT पैरामीटर के बिना आवर्ती ईवेंट असीमित सूची प्रदान करेंगे।

(अस्वीकरण मैं पैकेज के लेखक हूँ)

+0

हम्म विचार वास्तव में अच्छा है लेकिन मैं इसे काम नहीं कर सकता। 'पीआईपी 'एक' IOError 'फेंकता है इसलिए मैंने स्रोत डाउनलोड किया। मैंने उदाहरण को 'mycal = iCalendar() में अनुकूलित किया; mycal.string_load (iCal); mycal.get_event_instances (start = '20150301', end = '20150315') प्रिंट करें और इसे काम करने के लिए प्रिंट करें, लेकिन एक लंबा अपवाद ट्रेस प्राप्त करें। – Mark

+0

एक अच्छा पैकेज की तरह लग रहा है लेकिन दस्तावेज़ीकरण मौजूद नहीं है, और यह Google कैलेंडर iCAL फ़ाइलों को नहीं पढ़ सकता है। यह विफल रहता है: 'आरएफसी 5545 निर्दिष्ट करता है: \' \ xc2 \ xa73.6.1 निर्दिष्ट करता है कि \ '"VEVENT" कैलेंडर घटक किसी अन्य कैलेंडर घटक के भीतर घोंसला नहीं जा सकता है। \', निम्नलिखित पंक्ति अनुपालन नहीं है \ n पंक्ति: 17 - END: VTIMEZONE'' – kleptog

संबंधित मुद्दे