我正在嘗試使用 Python 3 創(chuàng)建一個函數(shù)來刪除指定目錄中的空目錄。不幸的是,我的嘗試沒有成功,所以我非常感謝任何幫助、指導和建議。我試圖讓該函數(shù)執(zhí)行的操作的示例:前...-folder/ |-empty1/ |-empty2/ |-not_empty1/ |-file |-not_empty2/ |-file后...-folder/ |-not_empty1/ |-file |-not_empty2/ |-file這是我確信會起作用但沒有起作用的:# folder - absolute path to directory that may contain empty directoriesdef cleanup(folder): from os import listdir, rmdir, path ls = listdir(folder) ls = map(lambda f: path.join(folder, f), ls) folders = filter(lambda f: path.isdir(f), ls) map(lambda x: rmdir(x), folders)謝謝!編輯:刪除了第一個映射末尾的額外括號,用于使用語句list(map(...))進行調(diào)試print已移至path.join()上方行path.isdir()將問題的標題從“...FP 風格的 Python 3”更改為,因為正如評論中指出的那樣,這不是 FP 的正確實現(xiàn)和應用。
1 回答

子衿沉夜
TA貢獻1828條經(jīng)驗 獲得超3個贊
os.rmdir只刪除空目錄,因此在正確且最小的實現(xiàn)中,在功能風格中沒有什么可做的:
import errno
import os
def cleanup(folder):
for name in os.listdir(folder):
try:
os.rmdir(os.path.join(folder, name))
except OSError as e:
if e.errno != errno.ENOTEMPTY:
raise
添加回答
舉報
0/150
提交
取消