如何批量删除指定路径下的同名空子文件夹FF-15?
解决空FF-15文件夹删除问题
你的代码存在几个关键问题,导致报错和删除失效:
glob.glob()返回的是路径列表,但os.removedirs()只能接收单个路径,直接传列表必然报错。os.removedirs()会递归删除所有空的父目录(比如删完FF-15后,如果上层的Folder1也为空,会连Folder1一起删掉),这大概率不是你想要的操作。- 没有判断FF-15文件夹是否为空,直接执行删除可能误删包含内容的文件夹。
下面是修正后的代码,仅删除空的FF-15文件夹:
import glob import os # 递归匹配所有FF-15路径,必须加recursive=True,否则**通配符不生效 ff15_paths = glob.glob('/Users/brianadams/school/trial/**/FF-15', recursive=True) for path in ff15_paths: # 判断文件夹是否为空:os.listdir返回文件夹内的所有内容,空文件夹返回空列表 if not os.listdir(path): # os.rmdir仅删除空文件夹,不会递归删除上层目录 os.rmdir(path) print(f"已删除空文件夹: {path}")
如果你的Python版本低于3.5(glob.glob的recursive参数不支持),可以改用os.walk遍历:
import os root_dir = '/Users/brianadams/school/trial' for root, dirs, files in os.walk(root_dir): if 'FF-15' in dirs: ff15_path = os.path.join(root, 'FF-15') if not os.listdir(ff15_path): os.rmdir(ff15_path) print(f"已删除空文件夹: {ff15_path}")
内容的提问来源于stack exchange,提问作者JodeCharger100
相关产品推荐
相关产品推荐

