python删除目录下的空文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python删除目录下的空文件夹相关的知识,希望对你有一定的参考价值。

import os

def del_emp_dir(path):
for (root, dirs, files) in os.walk(path):
for item in dirs:
dir = os.path.join(root, item)
try:
os.rmdir(dir) #os.rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。
print(dir)
except Exception as e:
print(\'Exception\',e)
if __name__ == \'__main__\':
dir = r\'F:\\test\'
del_emp_dir(dir)
参考技术A 我的代码,可以参考一下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#@Time:2021/1/26
#@Author:yishion

import os

def del_emp_dir(dir_all):
del_succ = 0
for (root,dirs,files) in os.walk(dir_all):
for item in dirs:
dir_one = os.path.join(root,item)
try:
os.rmdir(dir_one)
print(dir_one)
del_succ = 1
except Exception as e:
temp = e
return del_succ

if __name__ == '__main__':
count = 1
emp = 1
while emp :
print('第',count,'次查找删除')
dir_now = os.getcwd()
emp = del_emp_dir(dir_now)
count = count + 1
else:
print('共执行',count - 1,'次查找删除')

python脚本文件删除

昨天有需求需要用python脚本删除一个目录下的文件。遇到了点麻烦。

 

使用的是shutil.rmtree(dir)函数,这个函数可以删除有内容的目录,而shutil.rmdir(dir)只能删除空目录。

1、一删除就报错,最后怀疑是账户权限问题,更改了账户的权限以后,可以删除部分文件了,但还是有文件不可以删除

2、在网上查到可能是因为文件属性的问题,果真删不掉的文件都是只读的。如果想删除这些文件需要先修改其属性。

 

shutil模块是没有类似函数的,于是自己仿照shutil.rmtree函数写了一个,在删除文件之前就先os.chmod(file, stat.S_IWRITE)一下就好啦。

记得是要import os, sys, stat 才行的。

python用的不多,不过一些权限问题确实折腾了一会儿才弄明白。

以上是关于python删除目录下的空文件夹的主要内容,如果未能解决你的问题,请参考以下文章

python 实现彻底删除文件夹和文件夹下的文件

删除电脑里的空文件夹

用bat批处理程序通过DOS命令行删除所有的空文件夹

Python OS简单文件/目录操作

如何删除launchpad里的空文件夹

使用Git SVN删除SVN存储库中的空文件夹