一般人日常总是会将一些片段信息记录到文件中,放到电脑硬盘上。等过段时间,可能就不知道放到哪里了,电脑上文件夹太多。 找文件一般都会借助于搜索软件,比如Everything软件就很强大,输入名称,就能全局查找文件;

但是Everyting软件只能匹配文件内,如果想搜索的是文件内容,就没办法了。不知道市面上有没有这样的软件?

不过,可以使用python做一个简单的搜索功能,实现这个需求;

实现原理

  • 使用os遍历文件夹下所以文件
  • 使用内置open函数读取文件内容并搜索匹配
  • 为了提供速度,加一个多线程执行方法

准备工作

需要用到库中只有多线程库threading是第三方库,需要安装;安装方式比较简单,打开命令行窗口;执行命令:

pip install threading

等待安装成功;

多线程基础知识
进程是应用程序的执行实例。每一个运行中的程序就是一个进程。
线程是进程的组成部分,一个进程可以拥有多个线程。在多线程中,会有一个主线程来完成整个进程从开始到结束的全部操作,而其他的线程会在主线程的运行过程中被创建或退出。

并发和并行

并发和并行是两个概念,并行指在同一时刻有多条指令在多个处理器上同时执行;并发是指在同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。

</

使用python实现一个文件搜索功能,类似于Everything功能相关推荐

  1. 用python编写一个高效搜索代码工具

    用python编写一个高效搜索代码工具 大多码农在linux环境下使用grep+关键词的命令搜索自己想要的代码或者log文件.今天介绍用python如何编写一个更强大的搜索工具,windows下也适用 ...

  2. 搜索python代码的软件_用python编写一个高效搜索代码工具

    用python编写一个高效搜索代码工具 大多码农在linux环境下使用grep+关键词的命令搜索自己想要的代码或者log文件.今天介绍用python如何编写一个更强大的搜索工具,windows下也适用 ...

  3. 使用python删除一个文件或文件夹

    参考使用python删除一个文件或文件夹 - 云+社区 - 腾讯云 使用python删除一个文件或文件夹,需要使用os模块. import os os.remove(path) # path是文件的路 ...

  4. python读取一个文件夹/子文件夹下的所有文件名字

    python读取一个文件夹/子文件夹下的所有文件名字 示例代码: import osfile_path = './images/' all_file_name = os.listdir(file_pa ...

  5. 用python写一个文件管理程序下载_Python管理文件神器 os.walk

    原标题:Python管理文件神器 os.walk 来自:CSDN,作者:诡途 [导语]:有没有想过用python写一个文件管理程序?听起来似乎没思路?其实是可以的,因为Python已经为你准备好了神器 ...

  6. 如何用python写一个文件管理程序

    不知道大家有没有想过用python写一个文件管理程序?听起来似乎没思路?其实是可以的,因为Python已经为你准备好了神器os.walk,一起来试试吧! Python中os.walk是一个简单易用的文 ...

  7. 如何用Python判断一个文件是否被占用?

    今天有同学问,用os模块的access()能否判断一个文件是否被占用?直觉上,这是行不通的,因为access()返回的是文件的读写属性.为了确认这一点,我简单测试了一下. >>> i ...

  8. 如何使用python删除一个文件?

    使用Python删除文件有多种方法,但是最好的方法如下: os.remove()删除文件 os.unlink()删除文件.它是remove()方法的Unix名称. shutil.rmtree()删除目 ...

  9. python读取一个文件的大小_Python-读取文件的大小

    1.python读取文件以及文件夹的大小 1. os.path.getsize(file_path):file_path为文件路径 import os os.path.getsize('d:/svn/ ...

  10. 使用python删除一个文件或文件夹几种办法

    import os os.remove(path) # path是文件的路径,如果这个路径是一个文件夹,则会抛出OSError的错误,这时需用用rmdir()来删除 os.rmdir(path) # ...

最新文章

  1. Linux那些事儿 之 戏说USB(8)从这里开始
  2. python程序员需要掌握哪些技术-python运维要掌握哪些内容
  3. python和c++哪个好学-C++和Python哪一个更好?
  4. [云炬创业基础笔记]第五章创业机会评估测试7
  5. Chrome 访问一次 Controller,请求却执行两次
  6. Property ngOnInit does not exist on type VisibleFocusDirective
  7. SQLAllocStmt与SQLFreeStmt
  8. java 根据类名示例化类_Java即时类| plusMillis()方法与示例
  9. 模板函数:将string类型变量转换为常用的数值类型和常用的数值类型转String
  10. 【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装
  11. 2月28日 PCA降维,SVD压缩,中心化、归一化、标准化、k-l变换
  12. 在MFC中获取窗口\视图句柄 &获取当前活动的CView .
  13. jQuery的实用特性扩展类库:jQuery++
  14. java中类的main方法总结
  15. blender中常用快捷键的总结
  16. RFT 实用CODE
  17. 2018 总结,2019 计划
  18. 雨林木风linux安装教程,雨林木风修复win7系统虚拟机安装linux提示network error的办法...
  19. php搭建markdown云笔记_搭建个人 Leanote 云笔记本
  20. 去中心化资产的去中心化市场

热门文章

  1. UINavigationController 多次连续 Push Pop 问题
  2. discuzcode函数
  3. 评国内三大B2C网站首页的信息架构
  4. c语言程序设计ns图怎么画,请各位大神帮个忙,画个NS流程图,,急!!!
  5. 使用VScode插件vs-picgo传图到阿里云(Ubuntu18)
  6. VS2017编译SNMP库
  7. 关于opencv中图像的坐标原点的区分
  8. oracle中的job重要吗,关于Oracle的job的一些总结
  9. BosonNLP情感词典 评论情感分析
  10. 2021最新对比学习(Contrastive Learning)在各大顶会上的经典必读论文解读