1 ''' 2 写一个删除日志的程序,删除5天前或为空的日志,不包括当天的 3 1.删除5天前的日志文件 4 2.删除为空的日志文件 5 ''' 6 import os 7 import time 8 9 def delete_logs_file():#清理日志 10 for cur_dir,dirs,files in os.walk('logs'): 11 print(cur_dir,dirs,files) 12 if files:#当文件列表不为空是,开始删除 13 for file_name in files: 14 file_time = get_filename_time(file_name)#获取文件名的时间 15 is_delete_file = check_time(file_time) 16 file_path = os.path.join(cur_dir,file_name) 17 if is_delete_file: 18 os.remove(file_path) 19 else: 20 if check_time_is_today(file_time):#文件时间不是今天 21 if check_file_content(file_path):#文件为空,可以删除 22 print('文件为空',file_path) 23 os.remove(file_path) 24 25 26 27 def get_filename_time(file_name):#获取文件名中的时间 28 if file_name: 29 temp = file_name.split('_') 30 file_name_time = temp[1][:10] 31 return file_name_time 32 33 def check_time_is_today(time_str):#判断时间是否为当天 34 today = time.strftime('%Y-%m-%d')#获取当天的格式化时间 35 if today == time_str: 36 return False 37 else: 38 return True 39 40 def check_time(time_str):#判断时间是否为5天前的时间 41 now_time = time.time()#获取当前的时间戳 42 day_ago = now_time-5*24*60*60#获取5天前的时间戳 43 temp_time = time.strptime(time_str,'%Y-%m-%d')#获取传入时间的元组 44 time_zone = time.mktime(temp_time) 45 if time_zone <= day_ago: 46 return True 47 else: 48 return False 49 50 def delete_file(file_path):#删除指定文件 51 os.remove(file_path) 52 53 def check_file_content(file_path):#判断文件是否为空 54 file_size = os.path.getsize(file_path) 55 if file_size == 0: 56 return True 57 else: 58 return False 59 60 delete_logs_file()