我有以下代码删除名为“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] 删除。
我来说两句