您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
如何用python写一个文件搜索器?
文件,函数,文件名如何用python写一个文件搜索器?
发布时间:2016-12-08加入收藏来源:互联网点击:
如何用python写一个文件搜索器?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
这里以精确查找、模糊查找和特定查找3种查找为例,简单介绍一下python是如何查找文件的,主要用到python自带的模块os(walk函数),感兴趣的朋友可以自己尝试一下,实验环境win10+python3.6+pycharm2018,主要内容如下:
精确查找
这个是最简单的,直接使用os.walk函数遍历目标目录,如果查找到的文件名与输入的文件名相同,则返回文件完整路径,测试代码如下,os.walk函数会返回一个三元组,分别为查找的目标目录、查找的目标目录子目录(list列表)和查找的目标目录文件(list列表),这里使用os.path.join函数拼接为文件完整路径,输入参数分别为查找的目标目录和目标文件:
模糊查找
这里只需要对上面的代码稍微修改一下就行,如果在文件名中查找到输入的子串(模糊匹配到文件名中存在这个字符串),则返回文件完整路径,测试代码如下,非常简单:
特定查找
这里主要是查找特定类型的文件,基本代码和前面2个的查找是一样的,只需要在文件名中匹配特定后缀就行,如果是,则返回文件完整路径,测试代码如下,主要用到string字符串自带的endswith函数:
main函数调用
最后就是在main函数中调用上面的3个查找函数,测试代码如下,一个while循环,1为精确查找,2为模糊查找,3为特定查找,最后将查找的结果以蓝色打印出来,这里的查找目录可以人为指定,也可以设置为input输入获取:
程序运行截图如下,已经成功查找到对应文件:
至此,我们就完成了利用python来搜索文件。总的来说,这3种方式都非常简单,主要用到os.walk这个函数,其他的只需要稍微修改一下就行,只要你有一定的python基础,熟悉一下上面的代码和示例,多调试几遍程序,很快就能掌握的,后期改进的话,你也可以添加一个GUI界面(tkinter、pyqt等),使用起来能更方便,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
回答于 2019-09-11 08:43:50
使用Python进行文件查找的应用场景还是比较多的,比如
获取指定目录下某个具体的文件
获取指定目录下具备指定前缀或者后缀的文件
获取指定目录下指定格式的文件
这里涉及到文件的精确查询、模糊查询、范围查询。
如何设计一个函数实现上述三种查询场景?
我们主要使用了以下两个Python模块。
os 模块
Python 的 os 模块封装了常见的文件和目录操作。其中使用了以下方法:
os.walk:遍历目录。os.path.join:连接目录与文件名。
os.path.splitext:分离文件名与扩展名。
os.path.isdir:判断给出的路径是否是一个目录。
glob 模块
Python 的 glob 模块封装了文件查找匹配操作。其中使用了以下方法:
glob.glob:返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。需要注意的是,glob 模块pathname参数在Windows下是不区分大小写的,而在Linux下是区分大小写的。
函数设计,如下:
接下来,我们试一下 该函数是否满足上述三个文件查找场景
精确查询
查找D:\learn\config.yml文件
search('D:\learn\config.yml')
模糊查询
查找 D:\learn 目录下文件名以c开头的yml文件,支持前模糊、后模糊、全模糊。
search('D:\learn\c*.yml')
查询结果如下:
['D:\learn\config.yml', 'D:\learn\config1.yml']
范围查询
查找D:\learn目录下文件格式为 .jpg 的文件
search('D:\learn', '.jpg')
查询结果如下:
['D:\learn\1.jpg', 'D:\learn\12.jpg']
回答于 2019-09-11 08:43:50
python实现文件搜索应该是很简单的,先用Python读取指定文件夹,将所有文件名装在一个list里面,然后遍历查找所需要的文件即可。
上一篇:老公精神出轨怎么办?该不该继续过下去,还有别的办法吗?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |