''' 需求:删除,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)