如何确保从子文件夹中删除除 *.bin 文件之外的所有内容?

火焰

我有以下代码删除名为“debug”的子目录,如何确保从“debug”文件夹中删除除“*.bin”之外的所有内容?

# look for any debug directories. we can remove them from the root
for directoryToCheck in directories_to_check:
    for root,sub,files in os.walk(os.path.join(outputdir,directoryToCheck)):
        logger.info('sub is %s'%sub)
        if 'debug' in sub:
            logger.debug('Removing %s' % os.path.join(root,'debug'))
            shutil.rmtree(os.path.join(root,'debug'))
周四

如果我理解正确,我认为这就是你想要的:

import os
from re import search
from shutil import rmtree


def level(dir):
    return dir.count('/')

all_dirs = []
for root, dirs, files in os.walk("./debug"):
    for name in files:
        if not search('.+\.bin', name):
            os.remove(os.path.join(root, name))

    full_dirs =[os.path.join(root, dir) for dir in dirs]
    all_dirs = all_dirs + full_dirs


new_dirs = sorted(all_dirs, key=level, reverse=True)

for dir in new_dirs:
    if len(os.listdir(dir)) == 0:
        rmtree(dir)

首先,我浏览所有子目录,删除不是的文件.bin并收集all_dirs变量中的文件夹之后,我按深度对目录进行排序,如果它们为空,则删除它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从bin文件夹中删除* .compiled文件?

我想删除所有bin和obj文件夹以强制所有项目重建所有内容

如何删除除某些文件夹之外的所有文件夹

如何删除目录中除最新的 10 个隐藏文件夹之外的所有文件夹

删除除文件扩展名之外的所有内容

通过批处理文件从子文件夹中删除所有内容

从构建管道的 bin 文件夹中删除 DLL

如何忽略除* .cpp文件之外的所有内容

如何删除文件夹中除最新X子文件夹以外的所有子文件夹?

powershell 删除除最后三个文件夹之外的所有文件夹

如何创建批处理文件以递归方式删除所有名为`bin`或`obj`的文件夹?

(批量)如何递归删除目录中除以.开头的文件/文件夹之外的所有文件/文件夹?

将文件夹的名称添加到该文件夹中的所有`.bin`文件中

删除除两个文件夹之外的所有 .bat 文件

如何删除文件夹中除list.txt中的名称文件之外的文件?

Bash/sed:从文本文件中删除除匹配项之外的所有内容

删除目录中除两个特定文件夹外的所有内容

如何排除除所有顶级点文件和子目录之外的所有内容?

如何设置MyPackage.targets文件以将所有dll添加到bin / debug或bin / Release文件夹中?

/ usr / bin文件夹中没有写权限

如何删除目录中没有特定文件夹及其内容的所有内容

删除子文件夹中的所有内容

如何使用 .gitignore 忽略目录中除一个文件之外的所有内容?

如何忽略除单个文件之外的git仓库子目录中的所有内容?

Robots.txt 文件允许除一个之外的所有根 php 文件并禁止所有子文件夹内容

递归删除除一个子文件夹之外的所有子文件夹

如何在所有用户的家中创建〜/ bin文件夹?

删除文件夹中除具有特定名称的文件夹外的所有文件夹

将node_modules / .bin中的所有shebang链接到当前文件夹