要实现此目标,需要先删除空文件。如果先删除空文件夹,则会导致删除空文件之后,新产生的空文件夹无法被删除,或者需要进行二次操作,因此为提高效率和代码的质量,需要先删除空文件。
- 删除空文件
for root,dirs,files in os.walk(dir):
for file in files:
src_file=os.path.join(root,file)
if os.path.getsize(src_file) == 0:
os.remove(src_file)
- 删除空文件夹
dir_list=[]
for root,dirs,files in os.walk(dir):
dir_list.append(root)
# 先生成文件夹的列表,重点是下边
for root in dir_list[::-1]: # 先删除空子目录,然后才能删除空的父目录
if not os.listdir(root): # 判断文件夹中文件列表长度为0则删除文件
os.rmdir(root)
- 合并函数
import os
def Remove_Null(dir,size): # dir指定目录,size指定要删除的文件大小
dir_list=[]
# 删除空文件,删除小于等于size的文件
for root,dirs,files in os.walk(dir):
dir_list.append(root)
for file in files:
src_file=os.path.join(root, file)
if os.path.getsize(src_file)<=size:
os.remove(src_file)
# 删除空目录
for root in dir_list[::-1]:
if not os.listdir(root):
os.rmdir(root)