大体的思路就是:先删除里面所有的文件,接着从里往外依次删除剩余的空文件夹,至于最后的“根文件夹”根据需求选择是否删除。
利用堆栈的思想实现:
# -*- coding:utf-8 -*- import os def del_dir(filepath): lis = [filepath] lst = [] while lis: path = lis.pop() for f in os.listdir(path): sub_path = os.path.join(path,f) if os.path.isfile(sub_path): os.remove(sub_path) elif os.path.isdir(sub_path): lis.append(sub_path) lst.append(sub_path) # 把所有文件删完后,再处理里面的空文件夹 # 注意这里 倒序 取!从里往外删 for f in lst[::-1]: os.rmdir(f) # 最后再把最外面的目录删掉 —— 整个目录就没得了 os.rmdir(filepath)