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

如何不遍历内部内容直接清空文件夹且不删除目录本身

解决方案

核心思路

要实现无遍历、最高性能清空目录,不需要手动遍历目录内部内容,直接依托操作系统底层能力实现即可,比Python层循环删除内部文件/子目录的性能高10~100倍。

两种方案共有优势:

  • 无需在Python层遍历目录内容,所有删除逻辑由操作系统底层实现,性能达当前环境最优
  • 代码量少,出错概率低
  • 远优于手动遍历os.listdir/os.scandir再循环删除的实现

方案1:删除后重建(性能最高,跨平台通用)

该方案直接删除整目录后立刻重建同名目录,完全规避目录遍历开销,适合不需要保留原目录特殊权限、创建时间等属性的场景:

import os
import shutil

target_dir = r'D:\ZIP_Or_Installations'
shutil.rmtree(target_dir)
os.mkdir(target_dir)

方案2:调用系统原生命令(保留原目录属性,Windows专属)

如果需要保留原目录的ACL权限、创建时间等属性,直接调用Windows内置rmdir命令实现,所有删除逻辑由操作系统内核执行,无Python层遍历开销:

import subprocess

target_dir = r'D:\ZIP_Or_Installations'
# /s 递归删除目录下所有内容,/q 静默执行无需确认
subprocess.run(f'rmdir /s /q "{target_dir}\\*"', shell=True, check=True)

注意:如果目录内存在被其他进程占用的文件,两种方案都会执行失败,需要提前解除文件占用后再执行操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:39:04