Python(os.walk)
import os
import os.path
path = input('请输入你要查找的文件顶层目录')#输入需要查询的文件目录
file_name = input('请输入你要查找的文件名字')#输入需要查询的文件名称,或者关键词
def select_file():#定义查询函数
global PD#定义全局变量PD用来检测是否查询到程序,通过判断该值来判断是否查询到程序
PD = 0#我这里定义查询到为1,未查询为0
for root,filenames,filename in os.walk(path):#os.walk模块,返回三个值1.当前目录2.当前目录下文件夹名称3.当前目录下文件的名称
for name in filenames:#文件夹
if name == file_name:#判断是否有存在该名字的文件夹存在则输出,不存在跳过
print(os.path.join(root,name))#用os.path.join的方式将当前文件目录和文件名相加输出
PD = 1#当查找到文件就改变PD的值用来做后续判断
for name in filename:#文件
if name == file_name:#判断是否有该名字的文件,有则输出,没有就跳过
print(os.path.join(root,name))#用os.path.join的方式将当前文件目录和文件名相加输出
PD = 1#当查找到文件就改变PD的值用来做后续判断
file_namestr = set(file_name)#全称判断完,进入检查关键字环节,首先将要查询的名字转换为不会重复的set(集合的形式),要是list形式文件中有重复的关键词会给调用两遍,输出两遍
for name in filenames:#文件夹
filenames_str = set(name)#将遍历出来的文件夹名字str转化成set,这样进行单个字的遍历
for name_PD in file_namestr:
for name_str in filenames_str:
if name_PD ==name_str:#对比判断,要是存在相同的str,则输出
print(os.path.join(root,name))#用os.path.join的方式将当前文件目录和文件名相加输出
PD = 1#当查找到文件就改变PD的值用来做后续判断
for name in filename:#文件
filename_str = set(name)#将遍历出来的文件夹名字str转化成set,这样进行单个字的遍历
for name_PD in file_namestr:
for name_str in filename_str:
if name_PD == name_str:#判断
print(os.path.join(root,name))#输出
PD = 1#改变值
select_file()
if PD == 0:#当查找结束,判断PD的值,如果是没查找到会是之前的0,查找到则改变为1
print('你查找的文件不存在这个目录下')
运行示例如下,查询F盘某文件下,存在表关键字的文件和文件夹,返回文件路径