思路:写一个函数,函数里面while True循环遍历文件夹,对文件的创建日期与当前日期进行判断,超过3天则删除 def clear_task(clear_dir): # 参数clear_dir是需要清理的文件夹路径 while True: if not os.path.exists(clear_dir): pass else: today_date = datetime.date.today() # 当前日期datetime.date类型 for root, dirs, files in os.walk(clear_dir): for file in files: file_name = os.path.join(root, file) img_creat_stamp = os.path.getctime(file_name) # 文件创建时间 img_creat_loacaltime = time.localtime(img_creat_stamp) img_creat_ymd_str = time.strftime('%Y-%m-%d', img_creat_loacaltime) # 创建时间转换为年-月-日字符串类型 img_creat_date = datetime.date(*map(int, img_creat_ymd_str.split("-"))) # 将字符串类型转换为datetime.date类型 if today_date - img_creat_date > datetime.timedelta(3): os.remove(file_name) time.sleep(50000) 上面这个方法是将两个时间转换为datetime.date类型然后用datetime.timedelta()对比实现的。我在最开始想到的是时间戳转化为整数相减的方法,后来发现是错的,比如时间戳转换后截取前8位得到整数,20220601与20220531相减计算结果大于3,而实际5月31号是6月1号的前一天,不应删除。
定时任务清理三天前的文件
最新推荐文章于 2024-03-22 12:57:33 发布