Python如何遞迴刪除空資料夾

嗨学编程發表於2024-02-28

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)

相關文章