只能刪除目錄內的所有檔案,目錄內的目錄未刪除。因為當時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...