Python 将结果保存在一个集合中,并在一天结束时显示

Python 将结果保存在一个集合中,并在一天结束时显示,python,python-3.x,Python,Python 3.x,我有一个函数,它获取一个集合,从一小时开始,显示集合中存在的对象的数量。我想要的是这个集合保存当天发生的所有事件,并在晚上11:59写入文件,在下午12:00清理集合,第二天再次执行相同操作。目前,我的设置是在晚上11:59,它将检查有多少对象,并显示其数量,但它与发生的不匹配,例如在上午 def delayedCounter(delayedSet): now = datetime.now() date = now.strftime('%Y-%m-d') hour = date

我有一个函数,它获取一个集合,从一小时开始,显示集合中存在的对象的数量。我想要的是这个集合保存当天发生的所有事件,并在晚上11:59写入文件,在下午12:00清理集合,第二天再次执行相同操作。目前,我的设置是在晚上11:59,它将检查有多少对象,并显示其数量,但它与发生的不匹配,例如在上午

def delayedCounter(delayedSet):
   now = datetime.now()
   date = now.strftime('%Y-%m-d')
   hour = datetime.now().strftime('%H:%M')
   with open('delayedData.csv', 'a+') as file:
      if hour == '23:59':
         file.write(len(delayedSet)
      elif hour == '00:00':
         delayedSet.clear()


我正在使用ApsScheduler来做一项工作,以便不时地执行主功能,如图所示

def trains():
    try:
        data = list(getRequest())
        trainList = getTrain(data)
    except Exception as e:
        print(e)



scheduler = BackgroundScheduler()
scheduler.add_job(func=trains, trigger='interval', seconds=10 ,max_instances=100, misfire_grace_time=None)
scheduler.start()
写入集合的函数称为getDelayedCSV

def getDelayedCSV(trainList):
    delayedSet = set()
    word = 'Atrasado'
    for train in trainList:
        if word in train['status']:
            delayedSet.update([train['id']])

主要目标是将经过条件验证的对象存储在集合中,然后在一天结束时,将所有对象写入delayedData.csv文件。

请说明对象的存储方式以及缺少的对象的一些示例。集合包含唯一的值。我更新了代码,以便您可以看到我如何存储对象。我面临的唯一问题是,如果我让程序运行很长时间,当我打印len(delayedSet)时,它应该至少显示20个,但唯一显示的是从那一分钟开始的当前对象,而不是整个一天都是您的值到达
getDelayedCSV()
trainList和
train['id']
unique?是的,它们都在列车列表上,然后我设置了if条件以查看它们是否“延迟”,如果该条件为真,则它应该写入集合忽略重复项每次调用
getDelayedCSV
时,您都在创建
delayedSet
。您想在程序启动时对其进行初始化吗?