import os
path = r'E:\testmusic\0' #你要删除空文件夹的路径
paths = []#存储所有存在的文件夹路径
for p,folder,filename in os.walk(path):
#这里三个参数都不能少,P代表文件夹路径,folder:p路径下文件夹名字,filename:此路径下文件的名字
# print(p,folder,filename)
paths.append(p)
paths.sort(key=lambda x:len(x.split('\\')),reverse=True)
for path in paths:
if os.listdir(path) == []:
os.rmdir(path)
print(path + '已删除')
print('所有空文件删除done')
在不考虑效率的情况下,此方法经我测试有效,不会报错。思路是:把文件路径全部找出来后,根据文件路径的层数深度,先删除层数深的文件夹,再删浅层的。
利用os.listdir(path)返回的名字为空白判定这个是空文件夹.
拉姆达表达式简洁明了。多学学有很多好处啊。
水友如果测试有误,或者有BUG,欢迎留言。再次声明,此方法不讲效率,文件路径下太庞大的路径就运行效果很差,等待时间长,列表就运行效率低下。
python 自学者从现在做起!加油,加油,加油