- 問題:想清理電腦裏的某個文件夾下的空文件夾和空文件,由於大多數情況下文件夾涉及到嵌套的問題,但網上的很多代碼都只能刪除最底層的空文件夾,爲此本人對代碼進行了一些改進,實現能刪除嵌套的空文件夾。
- 適用場景: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)
聲明!以上內容純屬個人原創!轉載請標註出處,謝謝!
如果本文有幫助到你,希望能動動小手點個贊。 如有錯誤請多指正!如有雷同!純屬巧合!