测试的材料是创建在桌面上的demo文件夹,里面分别有的内容如下,其中只有照片、张三和张三的小三文件夹下有内容,要查找的文件夹在位置分别在
① demo文件下面的张三文件夹
② 张三的小三下面的张三文件夹
①中张三文件夹下的内容如下:
②中张三文件夹下的内容如下:
一共需要四个知识点:
① 遍历指定路径下所有的内容(包括文件和文件夹)
glob.glob(path, recursive = True)
② 获取路径的最后的文件/文件夹名称,判断是否为匹配的路径,如果是查找文件夹就是等于符号,如果要判断的文件,就是in的成员判断符号
os.path.basename(file) == keyword #判断文件夹
#keyword in os.path.basename(file) 判断文件
③ 输出一个路径下的全部内容(包括文件和文件夹)
os.listdir(file)
④ 文件路径的拼接,为了避免符号的影响,可以使用下面的方法
os.path.join(input('请输入要搜索的路径:'),'**')
3. 全部代码
这里是保留了接口,测试的时候直接赋值path和keyword,在使用的时候可以将这两个语句删除,然后将上面的两个注释打开运行,输入自己的要查找的文件路径和关键词即可
import os
import glob
def get_dir_site(path,keyword):
files_list = glob.glob(path, recursive = True)
#print(files_list)
n = 1
for file in files_list:
if os.path.basename(file) == keyword:
print(f'已找到匹配的第{n}个{keyword}文件夹,文件路径为{file}')
print(f'该文件夹下的内容有{os.listdir(file)}\n')
n += 1
if __name__ == '__main__':
# path = os.path.join(input('请输入要搜索的路径:'),'**')
# keyword = input('请输入要搜索的关键词:')
path = 'C:\\Users\\86177\\Desktop\\demo\\**'
keyword = '张三'
get_dir_site(path,keyword)
4. 输出结果
文件查找器的逻辑类似,前面已经在预备知识中提及了,有需要的话可以自己调试一下