删除子目录中特定类型的文件(Python)
我有很多文件夹和子文件夹,几乎每个文件夹里都有我想删除的几种文件类型(.psd和.ttf)。我试着用os.walk模块写了个脚本,但比我想的要复杂得多。有没有其他方法可以用呢?谢谢!
import os
def check_extension(fname,ext):
return fname.endswith(ext)
for root_path,dirs,files in os.walk(os.getcwd()):
for fname in files:
if check_extension(fname,'psd'):
os.remove(fname)
1 个回答
1
我很久以前写了这段代码,它应该能完成这个任务:
from os import listdir
from os.path import isfile, join
def get_extensions(folders, ext):
'''Returns a list of all files that are stored in folders and their subdirectories with extension in ext'''
found=[]
while folders:
temp=[]
for folder in folders:
try:
temp+=get_items(folder,None,False)
found+=get_items(folder,ext,True)
except WindowsError:
pass
folders=temp
return found
def get_items(directory,ext,files=True):
if files:
return [join(directory,f) for f in listdir(directory) if (isfile(join(directory,f)) and f.split('.')[-1] in ext)]
return [join(directory,f) for f in listdir(directory) if not isfile(join(directory,f))]
使用方法:
import os
for file in get_extensions([List of your folders], ['psd', 'ttf']):
os.remove(file)