python刪除指定路徑下的空文件夾和空文件 原

  • 問題:想清理電腦裏的某個文件夾下的空文件夾和空文件,由於大多數情況下文件夾涉及到嵌套的問題,但網上的很多代碼都只能刪除最底層的空文件夾,爲此本人對代碼進行了一些改進,實現能刪除嵌套的空文件夾。
  • 適用場景: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)

聲明!以上內容純屬個人原創!轉載請標註出處,謝謝!

如果本文有幫助到你,希望能動動小手點個贊。 如有錯誤請多指正!如有雷同!純屬巧合!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章