首页 > 解决方案 > 将结果保存在 SET 中并在一天结束时显示

问题描述

我有一个获取集合的函数,从一小时开始,显示集合中存在的对象数量。我想要的是让这个集合保存一天中的所有事件,并在晚上 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()


我正在使用 apscheduler 不时完成主要功能的工作,如它所示。

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']])

主要目标是存储在条件验证的 SET 对象中,然后在一天结束时,将所有对象写入延迟数据.csv 文件。

标签: pythonpython-3.x

解决方案


推荐阅读