python有毒:python多进程,函数内print的内容没有打印出来(time模块datetime.time模块的区别)
对于大多数简单的时间处理需求,time模块已经足够,datetime模块提供的功能更加强大全面,适用于高精度或复杂的日期运算场景。
·
python有毒:python多进程,函数内print的内容没有打印出来
python多进程,函数内print的内容没有打印出来
问题描述:
python使用进程池,执行 start_time = time.time()之后,打印不出日志
from datetime import time
def process_data(file_path):
print "ceshi111"
start_time = time.time()
print "ceshi2222"
发现 ceshi111 可以打印出来, ceshi2222不能打印出来。
问题原因:
from datetime import time
修改为 import time
原因分析:
使用datetime.time导入的是一个时间对象,而不是时间相关的函数,所以time.time()调用失败,导致ceshi2222无法打印。
datetime模块提供了丰富的时间对象和相关函数,但并未提供获取当前时间戳的time函数。这是因为datetime模块的设计目的不同于time模块。
datetime模块的主要目的是:
- 提供高精度的时间对象来存储和表示时间信息。能够精确到微秒和时区信息。
- 提供丰富的时间相关运算和转换功能。如添加减去年月日时分秒,时区转换等。
- 方便进行国际化的日期处理。
所以,datetime模块注重日期对象本身以及丰富的运算能力。而获取当前时间戳的功能时间模块已经能够满足,所以datetime模块并未提供time函数。
time模块datetime.time模块的区别
- time模块提供时间相关的函数和工具,datetime.time提供时间对象。
- time以浮点形式存储简单时间信息,datetime.time提供丰富的时间对象,能够精确到微妙,并支持时区。
- time主要用于简单的时间运算和格式化,datetime.time可进行复杂的日期运算和转换。
因此,根据需要选择不同的模块: - 如果只需要简单的时间格式化、计算差值或获取时间戳,使用time模块足够。
- 如果需要复杂的日期运算或高精度的时间对象,选择datetime模块。
- 如果涉及到时区转换或国际化日期,datetime是必选模块。
所以,对于大多数简单的时间处理需求,time模块已经足够,datetime模块提供的功能更加强大全面,适用于高精度或复杂的日期运算场景。
time模块更加注重 Unix 时间戳和简单的时间转换格式化,主要提供:
- time函数获取当前时间戳,以秒为单位。
- gmtime和localtime函数将时间戳转换为tm结构体。
- strftime函数将tm结构体格式化为自定义字符串。
- strptime函数将自定义字符串解析为tm结构体。
所以,time模块主要满足简单的时间获取、格式化和简单运算需求。更高级的功能由datetime模块提供。
更多推荐
已为社区贡献6条内容
所有评论(0)