方法1:
1 from datetime import datetime 2 import time 3 4 def timer(n): 5 """ 6 这个方法的缺点是,只能执行固定间隔时间的任务,如果有定时任务就无法完成,比如固定每天上午6点钟执行,并且sleep是一个阻塞函数,也就是说sleep着段时间,什么都不能做。 7 :param n: 8 :return: 9 """ 10 while True: 11 print(datetime.now().strftime("%Y-%m-%d %H:%M:%S")) 12 time.sleep(n) 13 14 timer(3)
方法2:
1 import threading 2 from datetime import datetime 3 4 def printTime(n): 5 print(datetime.now().strftime("%Y-%m-%d %H:%M:%S")) 6 # 第一个参数表示多长时间后调用后面第二个参数指明的函数。第二个参数注意是函数对象,进行参数传递,用函数名(如printTime)表示该对象,不能写成函数执行语句printTime(),不然会报错。可以用type查看出两者的区别 7 t = threading.Timer(n, printTime, (n,)) 8 t.start() 9 10 #timer = threading.Timer(1, printTime) 11 #time.sleep(15) # 15秒后停止定时器 12 #timer.cancel() 13 14 15 printTime(2)