我一直在寻找Python中的不同时间表,例如Sched(我是Windows用户)等。但是我无法抓住它并且我不知道是否可能。我的计划是制作如下图:
我们可以看到时间:00.21是等我希望程序执行功能的时间2但是功能1应该添加到我已经在列表中尽可能多的列表中,因为它在2分钟之前工作计时器命中。基本上...
功能1在定时器前2分钟执行其功能。当它击中00:21然后停止函数1并执行函数2,它接受List并在其自己的函数中使用它,并在完成时完成。
但是,我不知道该怎么做或开始。我想要做一个自己的计时器,但感觉这不是解决方案。你们有什么建议?
答案 0 :(得分:0)
我想我会通过创建一个子类threading.Thread
的类来解决这样的问题。从那里,您使用要执行的功能覆盖run
方法,在这种情况下,将把东西放入列表中。然后,在main
中,您启动该线程,然后调用sleep
。这个课程看起来像这样:
class ListBuilder(threading.Thread):
def__init__(self):
super().__init__()
self._finished = False
self.lst = []
def get_data():
# This is the data retrieval function
# It could be imported in, defined outside the class, or made static.
def run(self):
while not self._finished:
self.lst.append(self.get_data())
def stop(self):
self._finished = True
您的main
看起来像
import time
if __name__ == '__main__':
lb = ListBuilder()
lb.start()
time.sleep(120) # sleep for 120 seconds, 2 minutes
lb.stop()
time.sleep(.1) # A time buffer to make sure the final while loop finishes
# Depending on how long each while loop iteration takes,
# it may not be necessary or it may need to be longer
do_stuf(lb.lst) # performs actions on the resulting list
现在,您所要做的就是使用Windows任务计划程序在00:19运行它,您应该设置它。