如何用Python写一个每分每时每天的定时程序

如何用Python写一个每分每时每天的定时程序,第1张

1.计算生日是星期几

当你女朋友要过生日了,你肯定要定找家饭店订个餐庆祝一下,餐馆工作日会空一些,周末位置不好定,要是能知道她的生日是星期几就好了,下面这个程序就能搞定~~

比如girl friend 的生日假设是 gf_birthday='2017-3-3'

1).我们先把变量格式化成一个datetime对象

birthday=datetime.datetime.strptime(gf_birthday,'%Y-%m-%d')

2).然后利用datetime里瞎此面的函数weekday来得到一个下标

birthday.weekday()

3).构造一个weekdays的列表,根据下标从列表里面取出是周几

weekdays=['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']

weekdays[birthday.weekday()]

当然你要计算比如情人节,圣诞节什么的都可以用上面的程序,或者整个列表把10年的节日都罗列计算一下都是可以了,是不是很简单,对日期的理解有木有加深了一下下

2.定时任务

在Python里面,比如你想定期去爬一个网页,或者做运维的同学想每天12点去定时download一个文件,或者定时去扫描一些服务器,甚至老板的需求不停的变可能是,每隔5分钟,或者每小时的整点10分,每周每月都有一些定时任务

用Python怎么破很简单,磨蠢迅下面这个程序轻松搞定

我们先从一个最简单的例子说,假设我们是每分种的第10秒,去执行一个任务去打印一下当前的目录

1).window下是dir命令,linux是ls

我们用platform这个模块来判断一下 *** 作系统

import platform

os_platfrom=platform.platform()

if os_platfrom.startswith('Darwin'):

print'this is mac os system'

os.system('ls')

elif os_platfrom.startswith('Window'):

print'this is win system'

os.system('dir')

2).如何定时执行

a.我们先获取当前的时间

now=datetime.datetime.now()

假设当前时间是2017-02-09 20:19:47.555000

b.然后我们输入一个你要定时执行的target时间

比如你是x分10秒的时候执行sched_Timer=datetime.datetime(x,x,x,x,x,10)

前面的x是并不重要(只要最后是10秒就行了),我们就把目标时间设的比当前晚一点即可:

sched_Timer=datetime.datetime(2017,2,9,20,20,10)

c.好当档裤时间到了20:20:10的时候要运行我们的程序

如何定时到了呢,很简单用

if now==sched_Timer:

'run Task'

d.那么如何让时间在下一分钟10秒继续执行呢,也很简单用timedelta()

datetime.timedelta(minutes=1)把target时间往后增加一分钟

sched_Timer=sched_Timer+datetime.timedelta(minutes=1)

然后外边用个while 死循环hold住就可以了

同样的这个代码也可以扩展,把minutes=1改成hours=1就变成了每个小时定时任务,改成days=1就变成每天的定时任务

简单手机编程:几行代码让你的安卓手机自动整点报时

一人

03-11 12:06科技达人

关注

既然是简单编程轮森,那么肯定就不是用Android Studio大动干戈写工程文件做APP了,所以我们这里涉及到的是脚本语言Python。简单编程也只是用脚本语言在解释器里运行而已。而这,已经实现了程序正确运行的目的。

话说有一段时间,想买个表,这样可以看时间,但又一想,何不弄个自动整点报时的软件,于是在安卓手机上打开应用市场,找整点报时的APP,顺利下载了一个安装包小的APP,简单设置好时间后,默认后台运行,就可以了。

不过往往一段时间后,它会自动哑火。开启前一段时间好用,很准时很正常,但后来就没声响了。于是觉得不合适,又想别的办法,突然想到,何不编程写个整点报时的软件呢?于是想到脚本语言,为什么想到Python,因为它简单啊。但Python并不直接支持安卓手机,所以我们需要下载安装一个APP解释器。这个就是一人客在很早以前就介绍过的安卓的Python解释器QPython了。这里是3版本的。

这个解释器,也集成了大多数的安卓手机应用开发的接口。我们要实现的也很简单,就是通过不断的时间检测来决定是否用语音报时。当然核心是这个意思,但具体的扰桐拍代码就有一点点繁琐了。Python要用安卓手机的应用开发接口,就要用到androidhelper模块。而要用语音播报,那就要用droid.ttsSpeak(“这里就是你想要播报的字符串”)。而我们要正确地检测时间和播报时间,那不可避免要用time模块。而time模块出来的时间,不适合我们口语使用习惯,是需要根据年月日时等参数来用time.strftime转换的。

这里还有一个问题,就是语音播报的方式,比如23点11分钟,我们往往是这样表达:二十三点十一分钟。而用手机系统的语音播报则是这样:二三点一一分钟,所以这个也要注意,这里就要写一个转换函数了,也就是把数字正确地转变成汉字表达。

这个把数字转变成汉字的转换函数,大家可以自己写,也可以从网上找。而具体的实现代码,则很简单,这里是个人用的,每一分钟播报一次,每到半点或整点,继续播报,同时省略了转换函数缓羡_to_chinese4而直接写了实现代码,所以这里的代码仅供大家参考:

droid = androidhelper.Android()

xh=1 '''循环判断'''

while xh:

droid.ttsSpeak("现在是:"+"")

if (int(time.strftime("%M"))==30) or (int(time.strftime("%M"))==31):

droid.ttsSpeak("一人客,现在时间是:"+_to_chinese4(int(time.strftime("%H")))+"点半")

droid.ttsSpeak("一人客,现在时间是:"+_to_chinese4(int(time.strftime("%H")))+"点半")

else if (int(time.strftime("%M"))==00) or (int(time.strftime("%M"))==01):

droid.ttsSpeak("一人客,一人客,现在时间是:"+_to_chinese4(int(time.strftime("%H")))+"点钟啦")

droid.ttsSpeak("一人客,一人客,现在时间是:"+_to_chinese4(int(time.strftime("%H")))+"点钟啦")

time.sleep(59


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12217101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存