700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 利用python实现文件搜索功能

利用python实现文件搜索功能

时间:2019-10-20 01:40:11

相关推荐

利用python实现文件搜索功能

思路

首先需要获取路径下的文件名和文件夹名,然后根据用户输入的值,返回匹配的记录。

开始

这里是使用了os.walk函数,需要import os 库文件。

介绍一下os.walk()

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

top:需要遍历的路径地址topdpwn:是否优先遍历top路径,否则将会优先遍历top下的子目录oneerror:当 walk 需要异常时,调用一个 callable 对象followlinks:是否遍历快捷方式的真实路径os.walk的返回值是一个元组,分别是top的路径地址,top下面所有的文件夹名,top下面所有的文件名

首先写一个函数来获取所有的文件名和文件夹名称

def lis():t=[]for root, dirs, files in os.walk("/home/linc/文档/文件遍历",topdown=1):#优先top目录#os.walk会返回一个三元组分别存储了当前目录地址,该地址下所有的目录地址,该目录下所有的文件地址for name in files:#print(os.path.join(root, name))t.append(os.path.join(root, name))for name in dirs:#print(os.path.join(root, name))t.append(os.path.join(root, name))return t #返回索引Flist=lis()print(Flist)

这样就相当于建立了一个索引,接下只需要获取用户的输入,在把输入的值放到索引中匹配就好了

那么最后的代码就是

import osdef lis():t = []for root, dirs, files in os.walk("/home/linc/文档/文件遍历",topdown=1):#优先top目录#os.walk会返回一个三元组分别存储了当前目录地址,该地址下所有的目录地址,该目录下所有的文件地址for name in files:#print(os.path.join(root, name))t.append(os.path.join(root, name))for name in dirs:#print(os.path.join(root, name))t.append(os.path.join(root, name))return t Flist = lis()IN = input("请输入关键字")for i in Flist:#遍历索引if IN in i:#如果输入的值有在索引记录中存在print(i)

测试,可以看到同时匹配到了文件和文件夹

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。