方法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)