def SearchStrInDir(dir,str): #搜索当前目录中文件名含有对应字符串的文件
buffer = []
for i in ListFile(dir):
if GetFileName(i).find(str) != -1:
buffer.append(i)
buffer = [os.path.join(dir,j) for j in buffer]
return buffer
def NextFolds(folds): #获取一串目录的所有子目录,若无子目录则返回空列表
ghost = []
for i in folds: #relative path required
if IsSubdir(i) == False:
pass
else:
ghost = ghost + ListDirPath(i)
return ghost
def SearchStrInSubdir(dir,str): #搜索当前目录及其所有子目录中文件名含有对应字符串的文件
buffer = []
folds = [dir]
while True:
if NextFolds(folds) == []: #若一串目录无子目录,则在其中进行搜索后即停止搜索
for i in folds:
buffer = buffer + SearchStrInDir(i,str)
break
else:
for i in folds: #若一串目录有子目录,在这些子目录中继续搜索
buffer = buffer + SearchStrInDir(i,str)
folds = NextFolds(folds)
return buffer
Ireall
-- coding: utf-8 --
import os
def ListFile(dir): #获取当前目录的文件 return [i for i in os.listdir(dir) if os.path.isfile(os.path.join(dir,i))]
def ListDir(dir): #获取当前目录的子目录 return [i for i in os.listdir(dir) if os.path.isdir(os.path.join(dir,i))]
def ListDirPath(dir): #获取当前目录的子目录的相对路径 buffer = ListDir(dir) return [os.path.join(dir,j) for j in buffer]
def IsSubdir(dir): #判断当前目录是否有子目录 if ListDir(dir) == [] : return False else: return True
def GetFileName(file): #将扩展名去掉,获取文件名 return os.path.splitext(file)[0]
def SearchStrInDir(dir,str): #搜索当前目录中文件名含有对应字符串的文件 buffer = [] for i in ListFile(dir): if GetFileName(i).find(str) != -1: buffer.append(i) buffer = [os.path.join(dir,j) for j in buffer] return buffer
def NextFolds(folds): #获取一串目录的所有子目录,若无子目录则返回空列表 ghost = [] for i in folds: #relative path required if IsSubdir(i) == False: pass else: ghost = ghost + ListDirPath(i) return ghost
def SearchStrInSubdir(dir,str): #搜索当前目录及其所有子目录中文件名含有对应字符串的文件 buffer = [] folds = [dir] while True: if NextFolds(folds) == []: #若一串目录无子目录,则在其中进行搜索后即停止搜索 for i in folds: buffer = buffer + SearchStrInDir(i,str) break else: for i in folds: #若一串目录有子目录,在这些子目录中继续搜索 buffer = buffer + SearchStrInDir(i,str) folds = NextFolds(folds) return buffer