在用Python进行程序设计时,经常会需要用到时间的显示,以及定时调用某个功能模块的情况。本人在编写爬虫程序的时候,希望能够在每天指定的时间点,启用爬虫程序,以提高效率。如果你也有相同的需求,可以参考本文的代码,希望能对你有所启发。本文将通过一个比较简单的方式,对当前时间的显示以及定时调用功能模块的操作进行详细的说明,并提供了一个完整的模板供你参考,关于定时方式的选用,以及功能函数的调用等内容,你也可以参考更多的方法进行不断的调整完善。
时间显示(图片来自于网络 https://unsplash.com/photos/XE8Pe5uz_WI)
接下来,话不多说,直接上代码:
"""
Title : 时间显示以及定时调用模板
Author: Le Miaokai
Date : 2022-10-20
Email : LeMiaokai@Gmail.com
"""
import datetime, time, random
def showing_datetime():
"""
用于在当前屏幕中显示时间。
"""
#在屏幕上的同一个位置显示更新时间。
print(" 当前时间:" + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), end='')
# 删除本行内容,并且不换行
print("\r", end ='')
# 时间间隔为1秒
time.sleep(1)
# 根据起始时间,计算所持续的时间间隔,并转换为字符串格式进行输出
def runtime_to_str(begin_time):
# 取得当前时间
curr_time = datetime.datetime.now()
# 计算时间差,也就是时间间隔
duration = curr_time - begin_time
# 将秒换算成小时
hours = int(duration.seconds / 3600)
# 将秒去除小时后,再换算成分钟
minutes = int(duration.seconds % 3600 / 60)
# 将总秒数,去除小时和分钟所对应的秒数后,剩下的就是秒
seconds = duration.seconds % 3600 % 60
return "{}天{}时{}分{}秒".format(duration.days, hours, minutes, seconds)
def loop_runing():
begin_time = datetime.datetime.now()
# 产生一个随机的整数,模拟本程序执行的时间
random_time = random.randint(1,5)
time.sleep(random_time)
print("\n" + "*"*50 + "\n 本次共计用时:{}\n".format(runtime_to_str(begin_time)) + "*"*50 )
def auto_restart():
# 设定自动执行的起始次数为 0
auto_loop_time =0
print("\n"+"="*50+"\n 程序将于本地时间 01:00, 13:00 自动执行,请等待.\n"+"="*50+"\n")
#无限循环,等待到达设定的时间后,自动启动相应的模块
while True:
# 当小时除12余1,也就是1点和13点,分和秒都为0的时候 执行需要调用的程序。
if int(datetime.datetime.now().hour) % 12 == 1 and int (datetime.datetime.now().minute) == 0 and int(datetime.datetime.now().second) == 0 :
# 也可以设定其它的时间,比如每分钟执行一次,可以用以下代码,
# if int(datetime.datetime.now().second) >= 59 :
# 记录自动运行的次数
auto_loop_time += 1
# 调用需要定时执行的程序
loop_runing()
# 程序执行完毕后输出当前信息
print(f"\n 当前已经自动启动程序 [{auto_loop_time}] 次。\n")
print("-"*50)
print("\n 程序将于本地时间 01:00, 13:00 自动执行,请等待.\n"+"="*50+"\n")
# 在等待下一次程序自动运行的时候,显示当前时间
showing_datetime()
def main():
# 这里是需要执行的语句,也可以是调用多个函数,
auto_restart()
if __name__ == '__main__':
main()
另外,Python 有很完善的自动化定时调用函数的功能,钱魏Way 在 Python自动化之定时任务 一文中整理归纳8种自动化定时任务的实现方法,非常全面,有兴趣的朋友可以点击链接查阅,感谢 钱魏Way 的分享。以上就是关于Python中时间显示,以及定时调用模板的全部内容,如有不足之处请指出,谢谢!