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

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

贴上bat代码:

@echo off
echo.
echo ....kaishi..
echo -------------------------------------------------------------
cd. > listnull.txt
for /f "delims=" %%i in ('dir /ad /b /s') do (
dir /b "%%i" | findstr .>nul || echo %%i >> listnull.txt
)
set /a sum=0
for /f "tokens=*" %%i in (listnull.txt) do (
rd /q "%%i"
echo deleter:%%i
set /a sum=sum+1
)
echo -------------------------------------------------------------
echo 共成功删除%cd%目录及其子目录下%sum%个空文件夹!
echo.
set sum=
o.
set sum=
目录及其子目录下%sum%个空文件夹!
echo.
set sum=

可能我找的这个不是最有效的方法,如果哪位大神能知道有更好的办法请分享一下。共同学习。共同成长。
好了,废话不多说上代码:

#coding=utf-8
import os
import time
NUM_COUNT = 0
def delete_gap_dir(dir):
	if os.path.isdir(dir):
		for d in os.listdir(dir):
			delete_gap_dir(os.path.join(dir, d))
		if not os.listdir(dir):
			os.rmdir(dir)
			global NUM_COUNT
			NUM_COUNT = NUM_COUNT + 1
			print('移除空目录: ' + dir)

time1 = time.time()
delete_gap_dir(os.getcwd())
time2 = time.time() - time1
print('用时:',time2,‘ s ’)
print('删除文件夹个数:',NUM_COUNT)
print('删除完毕')
input('请按任意键退出')

解释一下用到的函数:

  1. os.path.isdir() #判断是否为目录
  2. os.path.join(dirname, filename) #链接目录与文件名
  3. os.rmdir() #删除path指定的空目录,如果目录非空,则抛出一个OSError异常。
  4. os.getcwd() #获取当前路径
  5. time.time() #获取当前时间戳
  6. global NUM_COUNT #全局变量在子方法中使用的话需要这样声明一下

更多关于os文件,文件夹的操作请移步菜鸟教程-Python3 OS 文件/目录方法
谨慎使用此代码,误删不负责

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

whl826661099

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值