import os
def delWithCmd(path):
try:
if os.path.isfile(path):
cmd = 'del "' + path + '" /F'
os.system(cmd)
except Exception as e:
print(e)
def del_files(path, delend):
for root, dirs, files in os.walk(path):
for name in files:
fileName = os.path.join(root, name)
if not name.endswith(delend):
try:
os.remove(fileName)
except PermissionError:
delWithCmd(fileName)
print("delete file :", fileName)
else:
n += 1
for dir in dirs:
del_files(os.path.join(root, dir), delend)
if not os.listdir(path):
try:
os.rmdir(path)
except Exception:
delWithCmd(path)
print("delete file :", path)
if __name__ == '__main__':
path = r"xxxx" # 路径
delend = ".py" # 要删除的文件后缀
n = 0
del_files(path, delend)
遍历指定文件夹下的所有文件,若是文件夹则递归继续遍历,非指定文件后缀就删除,也可以修改成删除指定后缀文件,增加了cmd命令,以处理permissionError带来的报错,若文件夹为空,便删除该文件夹