You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何实现批量清空多个指定文件夹内的文件

VDI多目录批量清理脚本实现

完全可以通过封装函数+路径列表的方式实现多文件夹一次性清空,以下是可直接复用的优化版本,同时修正了原有代码的逻辑问题。

原有代码的问题

  • os.remove() 删除成功时返回None,失败会直接抛出异常,原有返回值判断逻辑写反,遇到文件被占用、权限不足的情况会直接中断整个脚本
  • 原有逻辑只删除文件,会残留大量空文件夹,达不到完全清空目录的效果

优化后可直接使用的代码

import os
import shutil

def clear_single_folder(target_path: str) -> None:
    """清空单个目标文件夹下的所有内容,保留根目录本身"""
    # 校验路径有效性
    if not os.path.isdir(target_path):
        print(f"[跳过] 路径无效/不存在:{target_path}")
        return

    # 自底向上遍历目录,方便后续删除空文件夹
    for root, dirs, files in os.walk(target_path, topdown=False):
        # 先删除所有文件
        for file in files:
            file_full_path = os.path.join(root, file)
            try:
                os.remove(file_full_path)
                print(f"[删除成功] {file_full_path}")
            except PermissionError:
                print(f"[删除失败] {file_full_path}:权限不足或文件被占用")
            except Exception as e:
                print(f"[删除失败] {file_full_path}:{str(e)}")

        # 不需要删除空文件夹的话,把下面这段代码注释掉即可
        for dir_name in dirs:
            dir_full_path = os.path.join(root, dir_name)
            try:
                shutil.rmtree(dir_full_path)
                print(f"[删除子目录成功] {dir_full_path}")
            except Exception as e:
                print(f"[删除子目录失败] {dir_full_path}:{str(e)}")

if __name__ == "__main__":
    # 所有需要清空的目录统一放在这个列表里维护,新增路径直接按格式追加即可
    CLEAN_PATH_LIST = [
        r"C:\Users\jwals\test test",
        # 日常VDI清理常用路径示例,按需取消注释或者新增自己的路径即可
        # r"C:\Users\%username%\AppData\Local\Temp",
        # r"C:\Windows\Temp",
        # r"D:\VDI\UserCache",
        # r"C:\Users\%username%\Downloads",
    ]

    print("===== 批量目录清理任务启动 =====")
    for path in CLEAN_PATH_LIST:
        # 自动解析路径里的环境变量(比如%username%)
        parsed_path = os.path.expandvars(path)
        print(f"\n正在处理目录:{parsed_path}")
        clear_single_folder(parsed_path)
    print("\n===== 所有清理任务执行完毕 =====")

使用说明

  • 日常新增/调整待清理目录,只需要修改CLEAN_PATH_LIST列表即可,不需要动核心清理逻辑
  • 建议右键以管理员身份运行脚本,避免系统目录、程序占用目录权限不足的问题
  • 脚本默认会清空目录下所有文件+子文件夹,如果只需要删文件保留空的子目录,注释掉删除子目录的代码段就行
  • 路径里支持写%username%这类系统环境变量,脚本会自动解析成当前登录用户的对应路径,不用硬写用户名

内容的提问来源于stack exchange,提问作者Jimmy Walsh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 07:42:30