在 Python 的 iCal 格式文件中搜索事件

Searching for events in an iCal formatted file in Python

我只想查看 iCal 文件中适用于今天的事件。这是我的代码:

from icalendar import Calendar, Event
from datetime import datetime

g = open('reachcalendar.ics','rb')
cal = Calendar.from_ical(g.read())

for component in cal.walk():
  if component.name == "VEVENT":
    if component.get('dtstart').date() == datetime.today().date()
      print component.get('summary')
      print component.get('dtstart').dt

g.close()

但这会导致语法无效:

  File "today.py", line 9
    if component.get('dtstart').date() == datetime.today().date()
                                                                   ^
SyntaxError: invalid syntax

我做错了什么?

您缺少行尾的 :

if component.get('dtstart').date() == datetime.today().date():
#                                                        HERE^

除此之外,您可能不应该在循环内调用 datetime.today(),在之前调用它,记住值并在循环内使用:

today = datetime.today().date()
for component in cal.walk():
    if component.name == "VEVENT" and component.get('dtstart').date() == today:
        print component.get('summary')
        print component.get('dtstart').dt