windows系统下自动清理文件脚本

1 篇文章 0 订阅
1 篇文章 0 订阅
import os
import time

def delete_files(dir, max_size):
    # 获取目录内的文件列表,并按时间戳排序
    files = [(os.path.join(dir, f), os.stat(os.path.join(dir, f)).st_mtime)
             for f in os.listdir(dir) if os.path.isfile(os.path.join(dir, f))]
    files.sort(key=lambda x: x[1])

    total_size = sum(os.path.getsize(os.path.join(dir, f)) for f in os.listdir(dir)
                     if os.path.isfile(os.path.join(dir, f)))
    if total_size > max_size:
        # 目录总大小超过了最大容量,需要进行文件删除
        #         print(f"目录总大小为 {total_size} 字节,超过了最大容量 {max_size} 字节,进行文件删除...")
        total_size_to_delete = 0
        for path, timestamp in files:
            size = os.path.getsize(path)
            if total_size_to_delete + size > total_size / 2:
                break  # 删除文件总大小已经超过目录半容量,退出循环
            total_size_to_delete += size
            try:
                os.remove(path)
            #                 print(f"已删除文件 {path}")
            except os.error:
                print(f"无法删除文件 {path}")
    #         print(f"已删除 {total_size_to_delete} 字节文件,目前目录总大小为 {total_size - total_size_to_delete} 字节。")
    else:
        pass
#         print(f"目录总大小为 {total_size} 字节,未超过最大容量 {max_size} 字节,无需进行文件删除。")

def check_dir_size(dir_to_check, max_size):
    # 检查目录总大小是否超过阈值,如果超过则删除一半文件
    dir_size = sum(os.path.getsize(os.path.join(dir_to_check, f)) for f in os.listdir(dir_to_check)
                   if os.path.isfile(os.path.join(dir_to_check, f)))
#     print(dir_size)
    if dir_size > max_size:
        delete_files(dir_to_check, max_size)


if __name__ == '__main__':
    # 设定参数,阈值设置为8G      # 需要监视的文件夹路径和最大容量(字节)
    dirs = {"E:/AAA": 8589934592, "E:/BBB": 8589934592, "E:/CCC": 8589934592,"E:/DDD": 8589934592}

    # 对每个目录进行检测操作
    for dir_to_check, max_size in dirs.items():
        check_dir_size(dir_to_check, max_size)

针对以上脚本,将其放入windows定时任务中,设置按一定时间间隔执行,即可定时删除文件任务。
步骤:

  1. 打开 Windows 任务计划程序:按下“win + r”键,输入“taskschd.msc”,然后按回车键。
  2. 在任务计划程序中,右键单击“任务计划程序库”并选择“创建任务”。
  3. 在“常规”选项卡中,为您的任务命名,并选择与您的操作系统兼容的操作系统版本。
  4. 在“触发器”选项卡中,创建一个触发器来指定何时运行任务。
  5. 在“操作”选项卡中,选择“启动程序”,然后在“程序/脚本”字段中输入Python解释器的路径,如“C:\Python27\python.exe”。
  6. 在“参数”字段中输入Python脚本的路径,如“D:\code\example.py”。
  7. 在“条件”选项卡中,您可以选择任务运行的其他条件,例如计算机是否处于空闲状态或是否连接到电源。
  8. 单击“确定”按钮以保存任务,系统不会自动为您运行该任务,您需要启动该任务或等待任务触发器的触发时间。

以上这些步骤可用于创建 Windows 定时任务来自动化执行 Python 脚本。注意,您需要将 Windows 中的Python路径和脚本路径替换为您自己的路径。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值