python通过timeloop实现本地文件删除

import os
import datetime
import logging
import timeloop
from timeloop import Timeloop
from datetime import timedelta

'''
autor lyb
qq:937091538
'''
'''
定时任务 1. while true   2.timeloop(本次采用)  3.thread  4.schedule
1.实现自动删除本地文件夹及文件--根据文件夹(20240423)进行匹配删除
2.实现根据硬盘的存储空间大小进行自动删除文件夹及文件--待完成
3.实现多个盘符之间轮询切换--待完成
4.实现备份功能--待完成
5.
'''
#  设置日志
logger = logging.getLogger(__name__)
logger.setLevel(level=logging.INFO)
handler = logging.FileHandler("log.txt")
handler.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s ")
handler.setFormatter(formatter)
logger.addHandler(handler)
tl = Timeloop()

# 删除匹配成功的文件
def deleteFile(fileUrl):
    ls = os.listdir(fileUrl)
    for ll in ls:
        j_path = os.path.join(fileUrl, ll)  # 拼接路径
        if os.path.isdir(j_path):  # 判断是不是文件
            deleteFile(j_path)  # 递归
        else:
            if getFileTime() in j_path:
                print(f'此文件夹包含{getFileTime()}-{j_path}')  # 进行对文件进行删除
                logger.info(f'此文件夹包含{getFileTime()}-{j_path}')
                os.remove(j_path)
                print(f'删除文件成功,文件名为:{ll}')
                logger.info(f'删除文件成功,文件名为:{ll}')
                os.rmdir(fileUrl)
                print(f'删除文件夹:{getFileTime()}')
                logger.info(f'删除文件夹:{getFileTime()}')


def getFileTime():
    today = datetime.date.today()
    y_day = today - datetime.timedelta(days=180)  # 获取180天前日期
    # print(f"获取今日文件日期:{str(today).replace('-', '')}")
    # print(f"获取要删除文件日期:{str(y_day).replace('-', '')}")
    return str(y_day).replace('-', '')


def getCloudSize():  # 获取硬盘容量 当容量小于1GB进行删除覆盖最早文件
    print(0)


@tl.job(interval=timedelta(seconds=36000))  # 每十个小时执行一次
def job_j():
    logger.info("-----------开始----------------")
    logger.info(f'定时任务开始执行')
    deleteFile("D:\\hc\\video")
    logger.info("-----------结束----------------")


if __name__ == '__main__':
    tl.start(job_j)
	

#  getFileTime("D:\\hc\\video\\20240327")

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值