python3定时器

Python012

python3定时器,第1张

在实际应用中,我们经常需要使用定时器去触发一些事件。Python中通过线程实现定时器timer,其使用非常简单。看示例:

一秒后输出 Hello Timer!

oneshot的定时器这样就可以实现。

如果要实现cycle的定时器,则可以:

1s后定时器启动后,将再次以5.5s为间隔周期性执行回调fun_timer函数

结果是:

在使用Python定时器时需要注意:

1.定时器构造函数主要有2个参数,第一个参数为时间,第二个参数为函数名,第一个参数表示多长时间后调用后面第二个参数指明的函数。第二个参数注意是函数对象,进行参数传递,用函数名(如fun_timer)表示该对象,不能写成函数执行语句fun_timer(),不然会报错。

2.定时器间隔单位是秒,可以是浮点数,如5.5,0.02等,在执行函数fun_timer内部和外部中给的值可以不同。如上例中第一次执行fun_timer是1秒后,后面的都是5.5秒后执行。

3.可以使用cancel停止定时器的工作

sleep就可以吧,把程序作为一个线程,启动线程,里面加个sleep,示例如下:\x0d\x0aimport threading\x0d\x0aimport time\x0d\x0aclass Test(threading.Thread):\x0d\x0adef __init__(self):\x0d\x0apass\x0d\x0a\x0d\x0adef test(self):\x0d\x0aprint 'run test!'\x0d\x0a\x0d\x0adef run(self):\x0d\x0awhile True:\x0d\x0aprint time.strftime('%Y-%m-%d %H:%M:%S')\x0d\x0aself.test()\x0d\x0atime.sleep(5)\x0d\x0a#test...\x0d\x0aa=Test()\x0d\x0aa.run()\x0d\x0a#...test

写惯了Python脚本,需求越来越多,越来越强烈,那么面对需求,可能就会有各种定制化的要求条件出来,由于一些事情需要经常执行,但是不能人工每次去执行,自然就想到了能不能定时去执行Python脚本,通过查询,映入眼帘的是crontab。

具体执行方法是。

在iterm中输入 crontab -e ,这个的作用是编辑任务名。

随后就打开了vim,可以进行编辑

具体规则是

在其中我输入了

其目的是希望每天10点、15点、18点的时候执行Python脚本。

保存之后,会弹出是否允许管理电脑,直接点好就可以。

保存了之后可以通过 crontab -l 来查看是否创建成功

这样就创建成功了,等待明天的好消息了。

今天早上十点没有看到执行的操作,然后看到控制台有一条消息是

查看对应的文件描述是

了解到原来是没有找到python3,所以将命令改为

修改Python的路径后,有看到了报错如下:

这说明Python脚本已经运行起来了,但是因为编码原因没有完全成功运行,因为本身自动运行也没有必要print,所以去掉即可,我把print去掉之后,成功执行了脚本。

参考资料: https://www.jianshu.com/p/333d799aebb1