1.標準庫參考:shutil.rmtree。 根據設計,rmtree在包含只讀文件的文件夾樹上失敗。如果要刪除文件夾,不管它是否包含只讀文件,請使用 import shutil shutil.rmtree('/folder_name', ignore_errors=True) 2.從os.walk( ...
1.Python如何遞歸刪除空文件夾,這個問題很常見。但大多數人的解決辦法都是自己實現遞歸函數解決這個問題,其實根本不用那麼麻煩。
Python中的os.walk提供了一種從內到外的遍歷目錄樹的方法(設置topdown=False),這樣由內到外判斷當前目錄樹下是否有文件和文件夾,如果都沒有則意味著當前目錄樹為空文件夾,os.rmdir刪除即可。
# eg.
import os
for root, dirs, files in os.walk(path, topdown=False):
if not files and not dirs:
os.rmdir(root)
2.如果在遍歷文件夾同時,先做了一些操作,比如刪除文件操作os.remove,然後再判斷此時文件夾是否為空,為空則刪除。
需要用os.listdir判斷當前文件夾是否為空,因為dirs和files還是剛進入當前文件夾root時得到的。
# eg.
#Python學習交流群:711312441
import os
for root, dirs, files in os.walk(path, topdown=False):
for file in files:
if file.endwith('.jpg'):
file = os.path.join(root, file)
os.remove(file)
if not os.listdir(root):
os.rmdir(root)