python 怎么比较两个日期,并返回间隔天数
例1:基本原理1
1 str 转成 datetime.datetime 类型
2 datetime.datetime 转成 秒
3 distance = int(秒1) - int(秒2)
4 返回间隔日期
例2:基本原理2
import time
from datetime import datetime
def date_distance(date1, date2):
"""
1 str 转成 datetime.datetime 类型
2 datetime.datetime 转成 秒
3 distance_second = int(秒1) - int(秒2)
4 return 两个日期的间隔天数
"""
try:
# 1 str 转成 datetime.datetime 类型
date1 = datetime.strptime(date1, '%Y-%m-%d')
date2 = datetime.strptime(date2, '%Y-%m-%d')
except:
print('时间转换失败!\n{} , {} 的格式应为 %Y-%m%d 例如:2021-05-09 '.format(date1, date2))
# 2 datetime.datetime 转成 秒
second1 = time.mktime(date1.timetuple())
second2 = time.mktime(date2.timetuple())
# 3 res = int(秒1) - int(秒2)
distance_second = int(second1) - int(second2)
# 4 返回间隔日期
distance_date = int(distance_second / 60 / 60 / 24)
if distance_date < 0:
distance_date = -distance_date
return distance_date
if __name__ == '__main__':
res = date_distance('2021-05-05', '2021-05-08')
print(res)
输出结果:
3
<class ‘int’>
例3:工作中实例
递归获取目录(文件夹)下的所有文件路径
# 删除超过90天的日志
"""
1 获取指定目录下 指定特征值 的所有日志文件
2 获取日志文件的日期
3 获取今日日期
4 日期间隔大于等于90,则删除改日志文件
"""
from base.os_tools import get_filepath # 这是我自己写的方法,作用是:递归获取指定目录下的所有文件的地址,文章链接已附后文
# 1 获取指定目录下的所有日志文件
filepath_list = get_filepath('../log', list())
for filepath in filepath_list:
# 2 获取日志文件的日期
result = re.search('_(\d+).log', filepath)
date_log = result.group(1)
# 3 获取今日日期
date_now = datetime.now().strftime('%Y%m%d')
# 4 日期间隔大于等于90,则删除改日志文件
res = date_distance(date_now, date_log)
if res >= 90:
os.remove(filepath)
print('成功删除文件:{}'.format(filepath))
输出结果:
成功删除文件:
…/log\prodect2_1_20210708.log
“递归获取文件路径”的文章链接:https://blog.csdn.net/yayazhai0226/article/details/118671067?spm=1001.2014.3001.5501
》》》各位同学,要是对您有用,请帮我点个赞呗!
》》》有任何意见&建议,希望咱们在评论区交流!