使用递归和暴力查找的方法,给定的初始范围越小越快。
源代码
import os #系统库肯定要调的啦
global road #这个全局变量是为了获得找到的路径
def search_it(paths, filename):
global road #表明这里的road是全局变量road
#检查给定路径是否存在,不存在会因为报错而退出
try:
file_lis = os.listdir(paths)
except:
return False
#获取文件路径列表,暴力就是在所有的文件路径中进行比对
file_lis = os.listdir(paths)
if file_lis.__contains__(filename): #判断是否在当前路径下
#控制台输出路劲
print(f"文件的绝对路径为{os.path.join(paths,filename)}")
#全局变量road保存路径
road=os.path.join(paths,filename)
#如果找到,返回True
return True
else: #不在就打开其下的文件夹,继续往下找
for item in file_lis:
#递归的查找这个文件
if search_it(os.path.join(paths,item), filename):
return True
return False
if not search_it(paths,filename):
print('给定路径下找不到')
else:
global road
os.startfile(road)#用绝对路径启动