如果为空则删除同名的子文件夹

问题描述 投票:0回答:2

假设我有一个名为 trial 的文件夹,其中包含以下内容: 文件夹 1、文件夹 2、文件夹 3、...文件夹 5 每个文件夹都有一个名为 FF-15

的子文件夹

因此,路径是:

'/Users/brianadams/school/trial/Folder1/FF-15'
,或
'/Users/brianadams/school/trial/Folder2/FF-15'
,等等。

我想删除文件夹 FF-15,如果它在所有文件夹中都是空的。

我试过以下方法:

import glob
import os 
path = glob.glob('/Users/brianadams/school/trial/**/FF-15')
os.removedirs(path)

但它会抛出错误或最终不会删除文件。

python python-3.x jupyter-notebook
2个回答
1
投票

你需要遍历每个文件目录才能工作。您不能一次将它们全部删除。稍微修改一下代码,这应该适合你。

import glob
import os

ff15_dirs = glob.glob('/Users/brianadams/school/trial/**/FF-15', recursive=True)

for ff15_dir in ff15_dirs:
    if not os.listdir(ff15_dir):
        os.rmdir(ff15_dir)

编辑:有效,我刚刚使用我使用您的约束创建的文件目录对其进行了测试。


0
投票

除了上面提供的 Caleb Carlson 的回答之外,以下内容对我有用:

import glob
import os
import shutil

ff15_dirs = glob.glob('/Users/brianadams/school/trial/**/FF-15', recursive=True)

for ff15_dir in ff15_dirs:
    shutil.rmtree(ff15_dir)
© www.soinside.com 2019 - 2024. All rights reserved.