Python递归删除嵌套空目录

嵌套多个文件夹用命令和脚本代码都无法删除怎么办?一个工具搞定 使用Robocopy,java,python代码递归都没法删除怎么办,这是我遇到过的问题,然后我写了个小工具后,能删除成功了,嵌套了将近一万次了。删除过程中只需静静等待删除完毕的弹窗即可,最后就可以把剩下的最后一个文件夹手动删除了。 阅读详情

在实际应用中,经常遇到需要删除空目录的情况,手动一一删除效率太低。
通过Python标准库os可方便实现嵌套空目录的删除。

问题

假设现有test目录结构如下,需要删除test目录中的空目录。

test
└─1
    │  1.txt
    │
    └─2
        └─3

解决方法要点

  • 利用os.rmdir方法删除空目录,当目录不为空时,会抛出异常。
  • 利用os.walk方法遍历test目录。注意os.walk方法的topdown参数。topdown参数为遍历方式,布尔值,默认值为True:
    • topdown参数为True时,采用自上而下的遍历模式。从根目录向子目录遍历。
    • topdown参数为False时,采用自下而上的遍历模式。从子目录向根目录遍历。
      在本例中需要删除嵌套目录,因此,topdown参数的值应为False,否则只能删除嵌套最深的一个子目录。

代码

import os

def remove_empty_dir(path):
    for (root, dirs, files) in os.walk(path, topdown=False):
        for item in dirs:
            dir = os.path.join(root, item)
            try:
                os.rmdir(dir)
                print(dir)
            except Exception as e:
                pass

if __name__ == '__main__':
    path =r'd:\test'
    remove_empty_dir(path)

由于子目录1还与1个文件不为空,所以未能删除。
输出为:

d:\test\1\2\3
d:\test\1\2

华为昇腾 910B 实战:DeepSeek-R1 蒸馏模型高效部署与性能调优全解析 本文详细解析了在华为昇腾910B硬件平台上高效部署DeepSeek-R1蒸馏系列模型(14B/32B版本)的完整实战流程。内容涵盖从MindIE环境搭建、镜像获取、模型准备,到服务配置、内存参数调优、性能测试及常见问题排查,为开发者提供了基于昇腾910B进行大模型部署与优化的全链路指南。 阅读详情

相关推荐

LMX2594时钟配置实战:TICS PRO从入门到寄存器导出

本文详细介绍了LMX2594时钟芯片的配置实战,重点讲解了如何使用TICS PRO调试软件简化复杂的寄存器设置过程。通过实例演示从基础频率配置到高级参数调优的全流程,并分享SPI写入的嵌入式系统移植技巧,帮助工程师快速掌握高性能时钟芯片的配置方法。

weixin_29189003的博客 555

Python 删除多级嵌套目录以及删除指定目录下所有内容

删除多级嵌套目录 import os def delete_nested_folders(path): """ 删除嵌套文件夹 :param path: :return: """ if os.path.exists(path): x = os.listdir(path) # 获得目录下的所有文件 for i in...

yixinluobo的博客 2178

VSCode+Typst零配置写作指南:5分钟搞定论文排版环境(含实时预览技巧)

本文介绍如何利用VSCode和Typst快速搭建零配置的论文排版环境,5分钟内实现高效写作与实时预览。Typst作为轻量级排版工具,结合LaTeX的精度与现代化语法,显著提升学术写作效率,特别适合需要频繁调整格式的研究人员。

weixin_30642561的博客 111

删除win10无限嵌套的文件夹

删除无限嵌套文件夹

weixin_44044858的博客 701

避坑指南:RK3576+Android14适配移远5G模组(RG200U)时,我遇到的3个‘巨坑’及解决方案

本文详细记录了RK3576芯片适配Android14系统与移远RG200U 5G模组过程中遇到的三大技术难题:RIL服务启动失败、HIDL兼容性矩阵配置错误及ttyUSB权限冲突。通过实战案例提供了动态库拷贝、HIDL版本链声明和SELinux策略调整等解决方案,帮助开发者高效完成5G模组集成,特别适用于基于kernel6.1的嵌入式开发场景。

weixin_30664051的博客 390

BGP路由聚合:自动聚合和手动聚合

路由聚合是指将多条具体的路由合并为一条聚合路由,以减少路由表的条目数。这种技术通过只向对等体发送聚合后的路由,而不发送所有的具体路由,来减小路由表的规模。同时,被聚合的路由如果发生路由振荡,也不再对网络造成影响,从而提高了网络的稳定性。

网络技术联盟站 1221

python 如何删除文件夹下的所有文件和子文件夹?

删除文件夹下的所有的文件,以及子文件下所有的文件,把这个文件夹全部删除。 shutil.rmtree() 删除 先介绍一个最简单的方法,shutil.rmtree()

伤心的辣条 1395

Amesim应用篇-电芯等效电路模型标定

为了使计算模型更加准确,在有电芯实验测试数据的情况下,依据现有的实验数据对Amesim中的电池等效电路模型进行标定。标定的目的是为了获得更加符合项目实际情况的电芯等效电路模型,标定完的电芯可以用于搭建PACK模型,也可以用于其他虚拟实验。本文以充电标定为例,进行介绍。放电标定与充电一致。

2201_75375391的博客 1213

Python脚本递归遍历删除空文件夹、指定名称的文件夹及指定后缀的文件

使用Python脚本,递归删除指定目录下的空文件夹、指定名称的文件夹及指定后缀的文件。

yudaxiaye的博客 1052

ComfyUI 汉化教程(中文界面)

如果你对翻译的结果不满意,还可以进行修改。首先,进入目录,可以看到该目录中有很多 JSON 文件:打开 JSON 文件,找到要修改的内容,修改对应的Value值即可:最后,重启 ComfyUI 即可。

水滴的博客 1万+

【PCB专题】Allegro导出3D文件

Allegro中如何导出3D文件,有没有一键导出操作?

一点硬件 4988

Python Web:mkdir和rm命令选项

Python Web篇学习汇总: Python Web:操作系统与虚拟机软件 Python Web:了解Ubuntu操作系统 Python Web:Linux查看、切换目录命令 Python Web:绝对路径和相对路径 Python Web:创建、删除、复制、移动文件及目录命令 Python Web:ls命令选项 努力为大家更新Python web部分的内容,想看持续更新的记得关注上方专栏 ↑ ↑ ↑ 学习目标 能够说出删除文件有提醒信息的命令选项 1. mkdir命令选项 命令选项

黑马程序员官方博客 388

ROS2 CANopen 使用教程

第一步是定义一个结构,用于保存有关接头和相关 CANopen 数据的信息。该结构是 CANopen 网络的基础,可确保存储所有相关数据并在需要时进行访问。

机器人控制与仿真应用 3692

递归删除文件夹

初版代码 只能删除目录内的所有文件,目录内的目录未删除。因为当时os.rmdir()不知道加在哪,好像哪都不对,有知道的请告诉我。 import os from os import path def diy_remove(the_path): if path.exists(the_path): if path.isdir(the_path): filelist=os.listdir(the_path) for i in file

fj_changing的博客 280

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Python 递归删除目录下所有的空文件夹

上周因工作需要,需要删除4000多个空文件夹,而且还有很多子文件夹嵌套的那种,里面有文件的文件夹,有空的的文件夹。因为时间紧急。我在网上搜了一段bat代码。执行效率太慢,而且是不一次就能删除完,需要跑好多次,把我着急的呀。 贴上bat代码: @echo off echo. echo ....kaishi.. echo ----------------------------------------...

演绎的专栏 2625

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

电脑文件夹出现无限嵌套直接删除不了如何办?

如果不行,# 设置递归层数上限为 10000,更改上限。gc11下为无线嵌套路径;运行完可以直接删除gc11;

jianqimingtian的博客 1572

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

如何用 Python 递归删除文件系统中的所有空文件夹?

在日常开发或文件管理时,我们常常会遇到一些因项目重构、文件迁移或临时文件清理后残留的空文件夹。这些空目录不仅占用磁盘空间索引资源,还会让文件系统显得杂乱。本文将介绍如何用 Python 编写一个高效、安全的脚本,递归删除指定目录下的所有空文件夹(包括嵌套的深层空目录),并深入解析其实现原理。

ltm1410010510的博客 468

Python学习:纠错笔记:详解os.removedirs(path)的正确用法

第一次写博客 遇到os模块里的os.removedirs(path),有点摸不着头脑,它的名字和大部分教程网站上都告诉我们,它的作用是遍历删除一个目录下的多个目录(多个非空目录),听起来好像这样: 系统原来的目录: Window F:\盘的目录如下: F: \ a, a.txt

T704379675的博客 8987

使用 Python 批量删除文件:从基础到进阶实战

在日常开发、系统维护或数据处理中,**批量删除文件**是一项常见且高效的自动化任务。Python 提供了丰富的标准库(如 `os`、`glob`、`shutil`)和第三方工具,帮助开发者快速实现这一需求。本文将详细介绍如何使用 Python 批量删除文件,并结合实际场景和代码示例,帮助你掌握不同方法的适用场景和最佳实践。

专注于与编程相关的知识内容分享 725

Python中shutil.rmtree()的安全删除实践与陷阱规避

本文深入探讨了Python中shutil.rmtree()函数在目录删除操作中的安全实践与常见陷阱规避。文章详细分析了该函数递归删除目录树的工作原理、跨平台行为差异,并针对路径错误、权限处理、竞争条件等五大常见陷阱提供了具体的解决方案和健壮的代码示例,旨在帮助开发者安全、高效地进行文件系统操作。

julia4scientist的博客 1004

使用Python递归在根目录下面写入文件

有这么个需求,那就是在给定目录(例如:/dirA)下的所有子目录的根目录下创建相同的一个文件,有多层目录嵌套的情况,那么需要解决这个问题就需要通过递归的方式来解决。

懂幸福,爱生活 2854

模块嵌套_Python OS模块简介

在本教程中,我们将学习怎样使用Python中的os模块。目录表简介基本函数列出当前工作目录的文件/目录改变工作目录创建单个和嵌套目录结构递归删除单个和嵌套目录结构数据处理实例结论简介Python是近年来用于数据处理、数据分析和网站构建等各种任务的最常用语言之一。在处理这些任务的过程中,有许多任务依赖于操作系统。Python允许开发人员通过Python中的os模块使用多个依赖于操作系统的功能。这个包...

weixin_33656298的博客 82

Python内置模块之os详细功能介绍及示例

模块提供了丰富的操作系统交互功能,涵盖文件/目录操作、路径管理、环境变量、进程管理等。模块,可以轻松实现跨平台的文件管理、系统操作等功能,极大提升脚本的灵活性和健壮性。

demonlg0112的博客 605

Python复制、移动文件或文件夹:copy()、move()、rmtree()

它不仅会复制文件内容,还会保留文件的权限信息(如可读、可写属性),但不会复制文件的元数据(如创建时间和修改时间)。这些方法在数据备份、文件重命名以及自动化脚本中应用广泛,是Python文件管理中的重要工具。如果目标路径是一个文件或不存在的路径,则会直接覆盖或创建目标。与文件的删除不同,删除目录时需要特别注意目标目录的路径正确性,以避免误删除重要数据。块用于捕获可能发生的异常,如文件不存在或权限不足的错误,从而提高代码的健壮性。如果需要递归地复制整个目录,包括目录中的所有子目录和文件,可以使用。

分享人工智能领域原创文章 1012

Python os模块文件操作(二)

Python os模块文件操作(二) os模块对文件夹和文件的操作很多。可以先看:https://blog.youkuaiyun.com/weixin_43790276/article/details/98674218 一、os文件夹删除操作 # coding=utf-8 import os try: os.mkdir("folder") except: pass fd = os...

weixin_43790276的博客 3834

Python os和os.path模块详情

Python os和os.path模块详情

zhaoxi_1988的博客 303
上一篇: matplotlib之pyplot模块——设置坐标轴缩放类型(xscale、yscale)
下一篇: 使用Python根据扩展名将子目录的文件移动到指定目的目录
mighty13
博客等级 码龄23年 728粉丝 438原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值