使用python实现一个文件搜索功能,类似于Everything功能
一般人日常总是会将一些片段信息记录到文件中,放到电脑硬盘上。等过段时间,可能就不知道放到哪里了,电脑上文件夹太多。 找文件一般都会借助于搜索软件,比如Everything软件就很强大,输入名称,就能全局查找文件;
但是Everyting软件只能匹配文件内,如果想搜索的是文件内容,就没办法了。不知道市面上有没有这样的软件?
不过,可以使用python做一个简单的搜索功能,实现这个需求;
实现原理
- 使用os遍历文件夹下所以文件
- 使用内置open函数读取文件内容并搜索匹配
- 为了提供速度,加一个多线程执行方法
准备工作
需要用到库中只有多线程库threading是第三方库,需要安装;安装方式比较简单,打开命令行窗口;执行命令:
pip install threading
等待安装成功;
多线程基础知识
进程是应用程序的执行实例。每一个运行中的程序就是一个进程。
线程是进程的组成部分,一个进程可以拥有多个线程。在多线程中,会有一个主线程来完成整个进程从开始到结束的全部操作,而其他的线程会在主线程的运行过程中被创建或退出。
并发和并行
并发和并行是两个概念,并行指在同一时刻有多条指令在多个处理器上同时执行;并发是指在同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。
</
使用python实现一个文件搜索功能,类似于Everything功能相关推荐
- 用python编写一个高效搜索代码工具
用python编写一个高效搜索代码工具 大多码农在linux环境下使用grep+关键词的命令搜索自己想要的代码或者log文件.今天介绍用python如何编写一个更强大的搜索工具,windows下也适用 ...
- 搜索python代码的软件_用python编写一个高效搜索代码工具
用python编写一个高效搜索代码工具 大多码农在linux环境下使用grep+关键词的命令搜索自己想要的代码或者log文件.今天介绍用python如何编写一个更强大的搜索工具,windows下也适用 ...
- 使用python删除一个文件或文件夹
参考使用python删除一个文件或文件夹 - 云+社区 - 腾讯云 使用python删除一个文件或文件夹,需要使用os模块. import os os.remove(path) # path是文件的路 ...
- python读取一个文件夹/子文件夹下的所有文件名字
python读取一个文件夹/子文件夹下的所有文件名字 示例代码: import osfile_path = './images/' all_file_name = os.listdir(file_pa ...
- 用python写一个文件管理程序下载_Python管理文件神器 os.walk
原标题:Python管理文件神器 os.walk 来自:CSDN,作者:诡途 [导语]:有没有想过用python写一个文件管理程序?听起来似乎没思路?其实是可以的,因为Python已经为你准备好了神器 ...
- 如何用python写一个文件管理程序
不知道大家有没有想过用python写一个文件管理程序?听起来似乎没思路?其实是可以的,因为Python已经为你准备好了神器os.walk,一起来试试吧! Python中os.walk是一个简单易用的文 ...
- 如何用Python判断一个文件是否被占用?
今天有同学问,用os模块的access()能否判断一个文件是否被占用?直觉上,这是行不通的,因为access()返回的是文件的读写属性.为了确认这一点,我简单测试了一下. >>> i ...
- 如何使用python删除一个文件?
使用Python删除文件有多种方法,但是最好的方法如下: os.remove()删除文件 os.unlink()删除文件.它是remove()方法的Unix名称. shutil.rmtree()删除目 ...
- python读取一个文件的大小_Python-读取文件的大小
1.python读取文件以及文件夹的大小 1. os.path.getsize(file_path):file_path为文件路径 import os os.path.getsize('d:/svn/ ...
- 使用python删除一个文件或文件夹几种办法
import os os.remove(path) # path是文件的路径,如果这个路径是一个文件夹,则会抛出OSError的错误,这时需用用rmdir()来删除 os.rmdir(path) # ...
最新文章
- Linux那些事儿 之 戏说USB(8)从这里开始
- python程序员需要掌握哪些技术-python运维要掌握哪些内容
- python和c++哪个好学-C++和Python哪一个更好?
- [云炬创业基础笔记]第五章创业机会评估测试7
- Chrome 访问一次 Controller,请求却执行两次
- Property ngOnInit does not exist on type VisibleFocusDirective
- SQLAllocStmt与SQLFreeStmt
- java 根据类名示例化类_Java即时类| plusMillis()方法与示例
- 模板函数:将string类型变量转换为常用的数值类型和常用的数值类型转String
- 【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装
- 2月28日 PCA降维,SVD压缩,中心化、归一化、标准化、k-l变换
- 在MFC中获取窗口\视图句柄 &获取当前活动的CView .
- jQuery的实用特性扩展类库:jQuery++
- java中类的main方法总结
- blender中常用快捷键的总结
- RFT 实用CODE
- 2018 总结,2019 计划
- 雨林木风linux安装教程,雨林木风修复win7系统虚拟机安装linux提示network error的办法...
- php搭建markdown云笔记_搭建个人 Leanote 云笔记本
- 去中心化资产的去中心化市场