您的位置:

Python睡眠函数讲解

一、引入

在编写代码时,我们常常需要等待一段时间后再执行后面的代码。比如,在进行爬虫时,为了避免因过快的请求而被封禁IP,我们需要等待一段时间再继续请求。或者在程序运行中,我们希望将一些操作间隔一些时间进行,而不是一下子全部执行完毕。这时,Python的睡眠函数就派上用场了。

Python的睡眠函数是一种在执行程序时暂停一段时间的函数,它能够在程序中添加时间间隔,让程序在规定时间后继续执行。

二、time模块

1. 基础使用

time模块是一个Python标准库模块,主要提供与时间相关的各种函数,包括时间获取、格式化、时间间隔计算等。其中,最常见的就是time.sleep()函数,能够休眠程序的执行。

import time

print("start")
time.sleep(2) # 休眠2秒
print("end")

在上述代码中,通过导入time模块,使用time.sleep()函数休眠程序的执行2秒。

2. 睡眠时间的指定

time.sleep()函数的参数是以秒为单位的浮点数,表示程序暂停的时间。一般情况下,我们需要精确指定程序休眠的时间,这时可以使用time模块提供的clock()函数。

import time

start_time = time.clock() # 开始时间
time.sleep(2) # 休眠2秒
end_time = time.clock() # 结束时间

print("sleep time: ", end_time - start_time) # 输出休眠时间

在上述代码中,通过使用time.clock()函数获取程序休眠前后的时间,并计算差值得出程序休眠的时间。

3. 时间格式化

time模块还提供了很多函数来对时间进行格式化,比如strftime()、gmtime()等。

import time

# 格式化
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

在上述代码中,使用strftime()函数对当前时间进行格式化输出,输出结果形如:2021-11-11 11:11:11。

三、datetime模块

Python中的datetime模块也能够实现程序休眠,与time模块相比,datetime模块提供了更多处理时间的方法。

1. 基础使用

import datetime

print("start")
datetime.datetime.now()
datetime.datetime.now()
datetime.datetime.now()
print("end")

在上述代码中,通过导入datetime模块,使用datetime.datetime.now()函数获取当前时间并暂停了3次,从而实现程序的休眠。

2. 睡眠时间的指定

datetime模块的sleep函数与time模块有所不同,它的参数是一个时间间隔值,以小时、分钟、秒甚至微秒为单位。

import datetime

print(datetime.datetime.now())
datetime.datetime.now()
datetime.datetime.now()
datetime.datetime.now()
datetime.datetime.now()
datetime.datetime.now()
print(datetime.datetime.now())

在上述代码中,通过使用datetime.timedelta()函数来指定程序休眠的时间间隔。console输出结果:

2021-11-11 11:11:11.111111
2021-11-11 11:11:11.111111
2021-11-11 11:11:11.111111
2021-11-11 11:11:11.111111
2021-11-11 11:11:11.111111
2021-11-11 11:11:11.111111
2021-11-11 11:11:12.111111

3. 时间格式化

datetime模块同样提供了格式化函数strftime()

import datetime

print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))

在上述代码中,使用strftime()函数对当前时间进行格式化输出,输出结果形如:2021-11-11 11:11:11。

四、总结

通过本文的介绍,我们了解了Python的睡眠函数可以让我们在程序的执行中设置时间间隔,进而实现程序的延迟、等待、休眠等功能,帮助我们更加精确地控制程序的执行。同时,我们还学习到了如何使用time模块和datetime模块来实现程序的睡眠功能。

更多关于Python睡眠函数的用法,可以参考Python官方文档。