averainy's Blog

averainy

09 Oct 2022

自动删除空文件以及空文件夹

背景

最近在整理nas上的文件,发现有很多的空目录没有删除。为了删除这些空文件和空文件夹,所以用python写了一个脚本来执行这些操作。

代码

#!/bin/python
# -*- coding: utf-8 -*-
import time
import sys
import os
root_dir="/volume2/d/pt"
def deldir(path):
    """
    清理空文件夹和空文件
    param path: 文件路径,检查此文件路径下的子文件
    """
    try:
        files = os.listdir(path)  # 获取路径下的子文件(夹)列表
        for file in files:
            if os.path.isdir(os.path.join(path,file)):  # 如果是文件夹
                if not os.listdir(os.path.join(path,file)):  # 如果子文件为空
                    print ('{0} is empty directory, it will be deleted'.format(file))
                    os.rmdir(os.path.join(path,file))  # 删除这个空文件夹
                else:
                    deldir(os.path.join(path,file)) # 遍历子文件
                    if not os.listdir(os.path.join(path,file)):  # 如果子文件为空
                        print ('{0} is empty directory, it will be deleted'.format(file))
                        os.rmdir(os.path.join(path,file))  # 删除这个空文件夹
            elif os.path.isfile(os.path.join(path,file)):  # 如果是文件
                if os.path.getsize(os.path.join(path,file)) == 0:  # 文件大小为0
                    print ('{0} is empty file, it will be deleted'.format(file))
                    os.remove(os.path.join(path,file))  # 删除这个文件
        return
    except FileNotFoundError:
        print ("file:{0} not found".format(path))
deldir(root_dir)

结语

通过脚本能够更快的解决重复的手工劳动,真爱生命,避免手动。