Python-日志删除

'''
需求:删除,logs目录下3天前的日志,保留今天、昨天、前天
思路:
1、获取到所有的日志文件 os.walk()
2、判断日志是否是3天前
  1、获取到文件名里面的日期
  2、再把日期转成时间戳
  3、再获取三天前的时间戳,如果文件的时间小于3天前的时间,就删除
'''

import os,time
def str_to_timestamp(str_time=None,format='%Y-%m-%d %H:%M:%S'):
    '''格式化好的时间转时间戳,如果不传入的话,获取当前时间戳'''
    if str_time:
        time_tuple = time.strptime(str_time,format)#把格式化好的时间转成时间元组
        result = time.mktime(time_tuple)#把时间元组转成时间戳
        return int(result)
    return int(time.time()) #获取当前的时间戳

for cur_dir,dirs,files in os.walk('logs'):
    for file in files:
        file_time = file.split('_')[-1].split('.')[0]
        print('取到的时间',file_time)
        file_timestamp = str_to_timestamp(file_time,'%Y-%m-%d')
        three_ago_day = int(time.time())-24*60*60*3 #三天前的时间戳
        if file_timestamp < three_ago_day:
            abs_path = os.path.join(cur_dir,file)
            print('abs_path,',abs_path)
            os.remove(abs_path)

 

posted @ 2019-05-24 17:46  情绪疯子  阅读(967)  评论(0编辑  收藏  举报