Python如何实现数字时间显示以及定时功能调用

在用Python进行程序设计时,经常会需要用到时间的显示,以及定时调用某个功能模块的情况。本人在编写爬虫程序的时候,希望能够在每天指定的时间点,启用爬虫程序,以提高效率。如果你也有相同的需求,可以参考本文的代码,希望能对你有所启发。本文将通过一个比较简单的方式,对当前时间的显示以及定时调用功能模块的操作进行详细的说明,并提供了一个完整的模板供你参考,关于定时方式的选用,以及功能函数的调用等内容,你也可以参考更多的方法进行不断的调整完善。

时间显示(图片来自于网络 https://unsplash.com/photos/XE8Pe5uz_WI)
时间显示(图片来自于网络 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中时间显示,以及定时调用模板的全部内容,如有不足之处请指出,谢谢!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值