欢迎访问宙启技术站
智能推送

Python模块(Module)中的时间处理和定时任务

发布时间:2023-12-23 10:07:02

在Python中,有一些常用的模块可以用来处理时间和定时任务。其中,主要的模块有timedatetimeschedule

1. 时间处理模块time

time模块提供了一些函数来处理时间,比如获取当前时间、睡眠一段时间等。

示例代码:

   import time
   
   # 获取当前时间的时间戳
   timestamp = time.time()
   print("当前时间戳:", timestamp)
   
   # 将时间戳格式化为字符串
   localtime = time.localtime(timestamp)
   str_time = time.strftime("%Y-%m-%d %H:%M:%S", localtime)
   print("当前时间:", str_time)
   
   # 睡眠一段时间
   time.sleep(1)  # 睡眠1秒
   print("睡眠结束")
   

输出结果:

   当前时间戳: 1631889834.1625912
   当前时间: 2021-09-17 22:43:54
   睡眠结束
   

2. 时间处理模块datetime

datetime模块也提供了一些函数来处理时间,不过相对于time模块,datetime模块提供了更方便的时间处理方法,可以进行时间的加减运算等操作。

示例代码:

   from datetime import datetime, timedelta
   
   # 获取当前时间
   now = datetime.now()
   print("当前时间:", now)
   
   # 时间的加减运算
   one_hour_later = now + timedelta(hours=1)
   print("一小时后的时间:", one_hour_later)
   
   # 格式化时间
   str_time = now.strftime("%Y-%m-%d %H:%M:%S")
   print("当前时间:", str_time)
   

输出结果:

   当前时间: 2021-09-17 22:43:54.290783
   一小时后的时间: 2021-09-17 23:43:54.290783
   当前时间: 2021-09-17 22:43:54
   

3. 定时任务模块schedule

schedule模块可以用来执行定时任务,比如在指定的时间执行某个函数或者任务。

示例代码:

   import time
   import schedule
   
   def job():
       print("定时任务执行")
   
   # 每隔1秒执行一次定时任务
   schedule.every(1).seconds.do(job)
   
   # 每分钟的第10秒执行一次定时任务
   schedule.every().minute.at(":10").do(job)
   
   # 每小时的第30分钟执行一次定时任务
   schedule.every().hour.at(":30").do(job)
   
   while True:
       schedule.run_pending()
       time.sleep(1)
   

输出结果:

   定时任务执行
   定时任务执行
   ...
   

以上示例中,使用了schedule模块创建了三个定时任务,分别是每隔1秒执行一次、每分钟的第10秒执行一次、每小时的第30分钟执行一次。通过schedule.run_pending()方法来运行定时任务,time.sleep(1)用于控制任务的执行间隔。

总结:以上就是Python模块中处理时间和定时任务的一些常用方法和示例。通过对时间的获取、格式化和加减运算,我们可以更方便地处理时间。而使用schedule模块可以方便地设置和执行定时任务,让程序能够在指定的时间点自动执行某些任务。