python 的 time 模块是处理时间相关任务的核心内置库,它提供了从获取时间戳、格式化时间到程序延时和性能测量等一系列功能。以下是该模块主要功能与使用方法的详细解析。
一、 模块导入与基础时间获取
使用 time 模块的第一步是导入它。
import time
导入后,最基础的功能是获取当前时间,通常以时间戳(自1970年1月1日utc以来的秒数,浮点数形式)表示。
current_timestamp = time.time()
print(f"当前时间戳: {current_timestamp}")时间戳可读性差,time.ctime() 能将其转换为本地时间的字符串。
readable_time = time.ctime()
print(f"可读时间: {readable_time}")二、 时间格式的转换与解析
time 模块在时间戳、结构化时间对象和字符串之间提供了灵活的转换工具。
- 获取结构化时间
time.localtime([secs]): 将时间戳转换为本地时间的struct_time对象。若不提供参数,则使用当前时间。time.gmtime([secs]): 将时间戳转换为utc时间的struct_time对象。
- 时间格式化与解析
local_time = time.localtime()
formatted_time = time.strftime("%y-%m-%d %h:%m:%s", local_time)
print(f"格式化时间: {formatted_time}") # 输出如:2025-12-11 10:30:00time_str = "2025-12-11 10:30:00" parsed_time = time.strptime(time_str, "%y-%m-%d %h:%m:%s") print(parsed_time)
- 格式化 (
time.strftime()):将struct_time对象按指定格式转换为字符串。这是生成可读日期时间字符串的常用方法。 - 解析 (
time.strptime()):将格式匹配的字符串解析为struct_time对象。 - 时间对象与时间戳互转
time.mktime(t): 将本地时间的struct_time对象转换回时间戳。time.asctime([t]): 将struct_time对象转换为一个可读的字符串,格式类似于ctime()。
三、 程序控制与性能测量
- 延时执行
time.sleep(seconds)函数使当前线程暂停执行指定的秒数(可为浮点数),常用于控制节奏或模拟等待。这在网络爬虫中用于避免请求过快,或在自动化测试中模拟用户操作间隔。
print("开始")
time.sleep(2.5) # 暂停2.5秒
print("结束")- 测量时间间隔与性能
- 简单测量:使用
time.time()记录起止时间戳并计算差值,适用于测量代码段执行时间。
- 简单测量:使用
- 高精度测量:
time.perf_counter(): 返回一个具有最高可用精度的性能计数器的值,用于测量极短时间间隔。time.process_time(): 返回当前进程的系统和用户cpu时间总和,用于测量代码实际消耗的cpu时间。
- 单调时钟:
time.monotonic()返回一个单调递增的时钟值,不受系统时间调整影响,适用于测量时间间隔。 - 纳秒级精度:
time.time_ns()返回纳秒级精度的时间戳。
四、 实际应用场景
- 创建定时任务:结合循环与
time.sleep(),可以实现简单的定时执行功能,例如定期备份文件或检查状态。
def scheduled_task():
print(f"任务执行于 {time.strftime('%h:%m:%s')}")
while true:
scheduled_task()
time.sleep(5) # 每5秒执行一次- 实现倒计时:利用
time.sleep()和循环可以创建命令行倒计时。 - 计算函数执行时间:使用装饰器模式可以优雅地为函数添加计时功能,便于性能分析和调试。
import time
def timer_decorator(func):
def wrapper(*args, **kwargs):
start = time.perf_counter()
result = func(*args, **kwargs)
end = time.perf_counter()
print(f"{func.__name__} 执行耗时: {end - start:.6f} 秒")
return result
return wrapper
@timer_decorator
def my_function():
time.sleep(1)
my_function()- 多线程中的时间控制:在多线程编程中,
time.sleep()常用于控制不同线程的执行节奏或间隔。
五、 注意事项与与其他模块的协作
- 时区处理:
localtime()和gmtime()分别提供本地和utc时间,在处理跨时区应用时需注意区分。 - 格式匹配:使用
strptime()解析字符串时,格式字符串必须与时间字符串严格匹配,否则会引发错误。 - 模块协作:对于更复杂的日期时间操作(如日期加减、比较),
datetime模块功能更强大。对于需要事件调度的场景,可以参考sched模块。calendar模块则专注于日历相关的操作。
总结
python 的 time 模块是一个功能全面且直接的工具集,涵盖了从基础时间获取、格式化、程序延时到高精度性能测量的核心需求。掌握其常用函数如 time()、sleep()、strftime()/strptime()、localtime()/gmtime() 以及 perf_counter(),能够高效地解决开发中大多数与时间相关的编程任务。对于更复杂的日期时间处理,可结合 datetime 等模块共同使用。
到此这篇关于python time的使用的文章就介绍到这了,更多相关python time使用内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论