Используя python, как я могу получить события за сегодня через файл .ics

#python #file #icalendar #readfile

Вопрос:

Я хочу, чтобы у меня была возможность получить все события на сегодня, прочитав загруженный файл .ics

Комментарии:

1. pypi.org/project/ics

2. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

Есть несколько анализаторов ics, таких как ics-py. Вы пробовали что-нибудь из этого? Что именно вы пытаетесь сделать? (в каком формате вы хотите, чтобы ваши выходные данные были в? что вы собираетесь делать с «событием» в своем коде?

Если бы вы могли показать, что вы пробовали (и что вы хотите, чтобы это делалось, было бы проще что-то предложить).

обновлено после комментария: в соответствии с документами, которые вы только что сделали:

 from ics import Calendar

c = Calendar(your_ics_string)

print(c.events)

event = list(c.events)[0] # c.events is a set
print(type(event))

print(dir(event))

for event in c.events:
   ...
 

Обратите внимание , что я с этим не знаком ics-py , но документы выглядят очень хорошо.

Конечно, вам нужно сначала установить его ( pip install ics ), если вы еще этого не сделали.

Комментарии:

1. На данный момент я пытаюсь распечатать все события дня. Я искал ics.py но не нашли никаких способов сделать это.

Ответ №2:

что-то вроде этого (чтобы получить сегодняшнее событие, вам нужно сравнить дату начала события с сегодняшним днем)

 ics_data = '''BEGIN:VCALENDAR
BEGIN:VEVENT
CREATED:20151219T021727Z
DTEND;TZID=America/Toronto:20170515T110000
DTSTAMP:20151219T022011Z
DTSTART;TZID=America/Toronto:20170515T100000
LAST-MODIFIED:20151219T021727Z
RRULE:FREQ=DAILY;UNTIL=20170519T035959Z
SEQUENCE:0
SUMMARY:Meeting
TRANSP:OPAQUE
UID:21B97459-D97B-4B23-AF2A-E2759745C299
END:VEVENT
BEGIN:VEVENT
CREATED:20151219T022011Z
DTEND;TZID=America/Toronto:20170518T120000
DTSTAMP:20151219T022011Z
DTSTART;TZID=America/Toronto:20170518T110000
LAST-MODIFIED:20151219T022011Z
RECURRENCE-ID;TZID=America/Toronto:20170518T100000
SEQUENCE:0
SUMMARY:Final Meeting
TRANSP:OPAQUE
UID:21B97459-D97B-4B23-AF2A-E2759745C299
END:VEVENT
END:VCALENDAR'''

events = []
in_event = False
lines = ics_data.split('n')
for line in lines:
  if line == 'BEGIN:VEVENT':
    event = {}
    in_event = True
    continue
  if line == 'END:VEVENT':
    events.append(event)
    in_event = False
    continue
  if in_event:
    key,val = line.split(':')
    event[key]= val
for event in events:
  print(event)
 

выход

 {'CREATED': '20151219T021727Z', 'DTEND;TZID=America/Toronto': '20170515T110000', 'DTSTAMP': '20151219T022011Z', 'DTSTART;TZID=America/Toronto': '20170515T100000', 'LAST-MODIFIED': '20151219T021727Z', 'RRULE': 'FREQ=DAILY;UNTIL=20170519T035959Z', 'SEQUENCE': '0', 'SUMMARY': 'Meeting', 'TRANSP': 'OPAQUE', 'UID': '21B97459-D97B-4B23-AF2A-E2759745C299'}
{'CREATED': '20151219T022011Z', 'DTEND;TZID=America/Toronto': '20170518T120000', 'DTSTAMP': '20151219T022011Z', 'DTSTART;TZID=America/Toronto': '20170518T110000', 'LAST-MODIFIED': '20151219T022011Z', 'RECURRENCE-ID;TZID=America/Toronto': '20170518T100000', 'SEQUENCE': '0', 'SUMMARY': 'Final Meeting', 'TRANSP': 'OPAQUE', 'UID': '21B97459-D97B-4B23-AF2A-E2759745C299'}