删除目录下的空文件和空文件夹

要实现此目标,需要先删除空文件。如果先删除空文件夹,则会导致删除空文件之后,新产生的空文件夹无法被删除,或者需要进行二次操作,因此为提高效率和代码的质量,需要先删除空文件。

  1. 删除空文件
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)
  1. 删除空文件夹
​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)
  1. 合并函数
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)