问题:想清理电脑里的某个文件夹下的空文件夹和空文件,由于大多数情况下文件夹涉及到嵌套的问题,但网上的很多代码都只能删除最底层的空文件夹,为此本人对代码进行了一些改进,实现能删除嵌套的空文件夹。
适用场景:python3,windows,linux系统.windows下不建议直接输入某个磁盘名,linux下删除可能需要赋予代码权限,最好是用于清除自己熟知的目录,以免删除系统必要的文件。
目的很简单:检测给定路径下的所有文件夹和文件,并删除所有空文件夹和空文件
代码运行前后对比图:
具体代码如下:
# -*- coding: utf-8 -*-
import os # 引入文件操作库
def deldir(path):
"""
清理空文件夹和空文件
param path: 文件路径,检查此文件路径下的子文件
"""
print ('*'*30)
try:
files = os.listdir(path) # 获取路径下的子文件(夹)列表
print (files)
for file in files:
print ('遍历路径:'+os.fspath(path +'/'+ file))
if os.path.isdir(os.fspath(path+'/'+file)): # 如果是文件夹
print (file+'是文件夹')
if not os.listdir(os.fspath(path+'/'+file)): # 如果子文件为空
print (file+'是空文件夹,即将执行删除操作')
os.rmdir(os.fspath(path+'/'+file)) # 删除这个空文件夹
else:
print (file+'不是空文件夹')
deldir(os.fspath(path+'/'+file)) # 遍历子文件
if not os.listdir(os.fspath(path+'/'+file)): # 如果子文件为空
print (file+'是空文件夹,即将执行删除操作')
os.rmdir(os.fspath(path+'/'+file)) # 删除这个空文件夹
elif os.path.isfile(os.fspath(path+'/'+file)): # 如果是文件
print(file+'是文件')
if os.path.getsize(os.fspath(path+'/'+file)) == 0: # 文件大小为0
print (file+'是空文件,即将执行删除操作!')
os.remove(os.fspath(path+'/'+file)) # 删除这个文件
return
except FileNotFoundError:
print ("文件夹路径错误")
if __name__ == "__main__":
path = input("Please input the files path:") # 输入路径
deldir(path)
声明!以上内容纯属个人原创!转载请标注出处,谢谢!
如果本文有帮助到你,希望能动动小手点个赞。 如有错误请多指正!如有雷同!纯属巧合!