# coding=utf-8
import os
class SearchFiles:
dirpath = ''
def __init__(self, dirpath):
self.dirpath = dirpath
def all(self):
pathlist = []
def searchfiles(m_dirpath, m_pathlist):
m_namelist = os.listdir(m_dirpath)
for m_name in m_namelist:
m_path = os.path.join(m_dirpath, m_name)
if os.path.isfile(m_path):
m_pathlist.append(m_path)
else:
searchfiles(m_path, m_pathlist)
searchfiles(self.dirpath, pathlist)
return pathlist
def contain(self, containstr):
pathlist = []
def searchfiles(m_dirpath, m_containstr, m_pathlist):
m_namelist = os.listdir(m_dirpath)
for m_name in m_namelist:
m_path = os.path.join(m_dirpath, m_name)
if os.path.isfile(m_path):
if m_containstr in m_name:
m_pathlist.append(m_path)
else:
searchfiles(m_path, m_containstr, m_pathlist)
searchfiles(self.dirpath, containstr, pathlist)
return pathlist
def format(self, fileformat):
pathlist = []
def searchfiles(m_dirpath, m_format, m_pathlist):
m_namelist = os.listdir(m_dirpath)
for m_name in m_namelist:
m_path = os.path.join(m_dirpath, m_name)
if os.path.isfile(m_path):
if os.path.splitext(m_name)[1] == m_format:
m_pathlist.append(m_path)
else:
searchfiles(m_path, m_format, m_pathlist)
searchfiles(self.dirpath, fileformat, pathlist)
return pathlist
def formatlist(self, formatlist):
pathlist = []
def searchfiles(m_dirpath, m_formatlist, m_pathlist):
m_namelist = os.listdir(m_dirpath)
for m_name in m_namelist:
m_path = os.path.join(m_dirpath, m_name)
if os.path.isfile(m_path):
if os.path.splitext(m_name)[1] in m_formatlist:
m_pathlist.append(m_path)
else:
searchfiles(m_path, m_formatlist, m_pathlist)
searchfiles(self.dirpath, formatlist, pathlist)
return pathlist
class SearchDirs:
dirpath = ''
def __init__(self, dirpath):
self.dirpath = dirpath
def all(self):
pathlist = []
def searchdirs(m_dirpath, m_pathlist):
m_namelist = os.listdir(m_dirpath)
for m_name in m_namelist:
m_path = os.path.join(m_dirpath, m_name)
if not os.path.isfile(m_path):
m_pathlist.append(m_path)
searchdirs(m_path, m_pathlist)
searchdirs(self.dirpath, pathlist)
return pathlist
# 只筛选文件夹下没有子文件夹的路径,如果一个文件夹下既有子文件夹又有文件,则不会被记录
def final(self):
pathlist = []
def searchdirs(m_dirpath, m_pathlist):
m_flag = True
m_namelist = os.listdir(m_dirpath)
for m_name in m_namelist:
m_path = os.path.join(m_dirpath, m_name)
if os.path.isdir(m_path):
m_flag = False
searchdirs(m_path, m_pathlist)
if m_flag:
m_pathlist.append(m_dirpath)
searchdirs(self.dirpath, pathlist)
return pathlist
# 必须是文件夹名字中包含某个字符串,不能是整个路径中包含
def contain(self, containstr):
pathlist = []
def searchdirs(m_dirpath, m_containstr, m_pathlist):
m_namelist = os.listdir(m_dirpath)
for m_name in m_namelist:
m_path = os.path.join(m_dirpath, m_name)
if not os.path.isfile(m_path):
if m_containstr in m_name:
m_pathlist.append(m_path)
searchdirs(m_path, m_containstr, m_pathlist)
searchdirs(self.dirpath, containstr, pathlist)
return pathlist
# 当前一级子路径的文件夹
def current(self):
pathlist = []
for name in os.listdir(self.dirpath):
path = os.path.join(self.dirpath, name)
if os.path.isdir(path):
pathlist.append(path)
return pathlist
Python 文件检索
最新推荐文章于 2025-09-08 13:52:40 发布
3013

被折叠的 条评论
为什么被折叠?



