如何使功能定期运行特定时间

时间:2019-09-12 09:53:06

标签: python python-3.x function

我想每秒截图10秒。

我尝试使用线程和调度,但无法提出解决方案来满足我的问题。

def fun(original):
    end_time = datetime.now() + timedelta(seconds=10)
    while datetime.now() < end_time:
        current = ImageGrab.grab()
        current.save("current.png")
        current = cv2.imread("current.png")
        found = screenshot_comparison(original,current)
        if found :
            print("matched")
        else :
            print("didntMATCH")
            fun(original)

我想每秒捕获屏幕截图10秒钟,然后将其与已经抓取的屏幕截图进行匹配。

1 个答案:

答案 0 :(得分:4)

我建议使用Advanced Python Scheduler,更具体地说,使用其interval scheduler,例如:

sched = BlockingScheduler()
sched.add_job(yourFunction, 'interval', seconds=10)
sched.start()

编辑 这是一个更完整的示例:

from apscheduler.schedulers.blocking import BlockingScheduler

sched = BlockingScheduler()

def myFunction(testParam):
    print("Message: {}".format(testParam))

if __name__ == '__main__':
    sched.add_job(myFunction, 'interval', seconds=10, args=["Works!"])
    sched.start()