我在试用一个googlecalendarapi for python,我想每五秒钟检查一次日历中添加的新事件。我知道将其设置为旧列表,然后在更新时再次进行比较,如下所示:
-main()
是从日历中检索数据的函数。
-Allevents
是日历中的事件列表。它在main()
中附加了事件
-其他名字很直观
while 1 == 1:
time.sleep(5)
main()
if first == 0:
m = set(allevents) - set(oldevents)
print(oldevents)
if not m:
print('nothing changed')
else:
print(m)
print("--------------------------------------------------------")
else:
oldevents = allevents
first = False
oldevents = allevents
allevents.clear()
当我运行这个程序时,它第一次检索到的数据运行得非常顺利:输出allevents
(如main()
中所写),其他什么都没有。第二次是我还没有做任何更改的时候,所以它会输出allevents
和oldevents
(它们的值相同)以及nothing changed
消息
while循环的第三次运行是在我向日历中添加事件时。理论上,我希望它输出我因为
m = set(allevents) - set(oldevents)
print(oldevents)
if not m:
print('nothing changed')
else:
print(m)
print("--------------------------------------------------------")
但是,它跟随if not m:
,输出allevents
和oldevents
的值以及我添加的新事件^{和nothing changed
消息
旁注:当我在下一个循环中删除该事件时,两个列表也会删除该事件
四个循环(出于演示目的进行了一些修改):
Getting the upcoming 10 events
['5kt8vb1m5tad2h6higtd8seqp9']
Getting the upcoming 10 events
['5kt8vb1m5tad2h6higtd8seqp9']
['5kt8vb1m5tad2h6higtd8seqp9']
nothing changed
Getting the upcoming 10 events
['7p4hs2ribddnl5h13erv5c1rir', '5kt8vb1m5tad2h6higtd8seqp9']
['7p4hs2ribddnl5h13erv5c1rir', '5kt8vb1m5tad2h6higtd8seqp9']
nothing changed
Getting the upcoming 10 events
['5kt8vb1m5tad2h6higtd8seqp9']
['5kt8vb1m5tad2h6higtd8seqp9']
nothing changed
如果你认为更多的代码是必要的,告诉我,我会张贴整个事情
在代码中,“first=False”将first设置为零。所以它在下一次迭代中进入if循环
相关问题 更多 >
编程相关推荐