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

Python3如何删除指定目录下除特定文件夹外的所有内容

实现方案

原代码问题说明

你的现有代码存在几个核心逻辑错误:

  • 路径中冗余的./会导致识别混乱,且硬编码路径不符合函数封装逻辑
  • os.remove仅支持删除文件,遇到子文件夹会直接抛出异常
  • 遍历到ksg目录后直接删除D目录下所有内容,会把需要保留的ksg也一并删除
  • os.rmdir仅能删除空文件夹,非空目录会直接删除失败

正确可运行代码

import shutil
from pathlib import Path

def delete_except_ksg(root_path):
    root_dir = Path(root_path)
    # 定义需要保留的ksg目录路径
    keep_dir = root_dir / "ksg"
    
    # 前置校验:避免ksg不存在时误删全部内容
    if not keep_dir.exists() or not keep_dir.is_dir():
        print(f"目标保留目录{keep_dir}不存在,操作终止")
        return
    
    # 遍历D目录下所有一级子文件/子文件夹
    for item in root_dir.iterdir():
        # 跳过要保留的ksg目录
        if item == keep_dir:
            continue
        # 删除文件/软链接
        if item.is_file() or item.is_symlink():
            item.unlink()
        # 递归删除非保留的文件夹
        elif item.is_dir():
            shutil.rmtree(item)
    print(f"{root_path} 下除ksg外的所有内容已删除完成")

# 调用执行
delete_except_ksg("./Desktop/D")

注意事项

  • 首次运行前建议先备份D目录下的内容,避免误删
  • 代码不会修改ksg目录内部的任何文件,仅删除同级其他内容
  • ksg目录不存在时会自动终止操作,不会清空整个D目录

内容的提问来源于stack exchange,提问作者Anjelo Maerte

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:39:01