遞迴刪除資料夾

2021-10-24 08:36:47 字數 1275 閱讀 1599

只能刪除目錄內的所有檔案,目錄內的目錄未刪除。因為當時os.rmdir()不知道加在哪,好像哪都不對,有知道的請告訴我。
import os

from os import path

def diy_remove(the_path):

if path.exists(the_path):

if path.isdir(the_path):

filelist=os.listdir(the_path)

for i in filelist:

temp_the_path=path.join(the_path,i) # 要定義新變數存放新路徑,如果用新路徑覆蓋the_path,多層巢狀的目錄結構遞迴時會報錯

if path.isdir(temp_the_path):

diy_remove(temp_the_path)

else:

os.remove(temp_the_path)

else:

os.remove(the_path)

else:

print('路徑不存在')

diy_remove('')

相較第一版,先執行os.listdir(),再判斷是檔案還是資料夾。

import os

from os import path

def diy_remove(the_path):

if path.exists(the_path):

filelist = os.listdir(the_path)

for i in filelist:

temp_the_path = path.join(the_path,i) # 要定義新變數存放新路徑,如果用新路徑覆蓋the_path,多層巢狀的目錄結構遞迴時會報錯

if path.isdir(temp_the_path):

diy_remove(temp_the_path)

else:

os.remove(temp_the_path)

os.rmdir(the_path) # 遞迴刪除空目錄.每次呼叫遞迴函式時,將當時的temp_the_path傳入the_path,這樣每層遞迴都有自己的the_path,這裡是刪除當前遞迴層的the_path

else:

print('路徑不存在')

diy_remove('')

import shutil

shutil.rmtree('')

遞迴刪除資料夾

方法名稱 deletefolder 方法描述 遞迴刪除目錄下的所有檔案及子目錄下所有檔案 param dir 將要刪除的檔案目錄 return boolean returns true if all deletions were successful.if a deletion fails,the ...

python 遞迴刪除資料夾 遞迴複製資料夾

學過python os模組的人都知道python中的rmdir 函式只能刪除乙個空的資料夾,而remove 函式也只能刪除單個的檔案,沒有乙個現成的方法來刪除乙個資料夾 裡面有檔案 所以我們要借助遞迴去刪除乙個資料夾中的每乙個檔案 或者資料夾 下面是 遞迴刪除資料夾 import os defdel...

利用遞迴刪除資料夾(資料夾中套資料夾)

刪除目錄 bool deldir const ansistring p if p.isempty p.length 4 return false 引數必須大於3,即不能為磁碟根目錄或空白 int len p.length char path p.c str ansistring dir ansist...