电脑自带的搜索文件功能相信大家都体验过,那是真的慢,等它找到文件,我都打完一把游戏了!

那必须不能忍,于是我自己做了一个文件搜索工具,犄角旮旯的文件都能一秒钟搜索出来的那种!

保证能把你们男(女)朋友那些藏的很深的不可告人的文件分分钟找出来~



用到的环境

1. 解释器: Python 3.8.8 | Anaconda, Inc.

2. 编辑器: pycharm 专业版

代码展示

全部代码我都放这了,就不单独解释了,我都写在注释了。

import tkinter as tk
from tkinter import filedialog
import os root = tk.Tk()
root.geometry('600x300')
root.title('学习资料搜索工具') """搜索框"""
search_frame = tk.Frame(root)
search_frame.pack() tk.Label(search_frame, text='关键字:').pack(side=tk.LEFT, padx=10, pady=10)
key_entry = tk.Entry(search_frame) # 创建一个输入框
key_entry.pack(side=tk.LEFT, padx=10, pady=10) # 将输入框显示到界面
tk.Label(search_frame, text='文件类型:').pack(side=tk.LEFT, padx=10, pady=10)
type_entry = tk.Entry(search_frame)
type_entry.pack(side=tk.LEFT, padx=10, pady=10)
button = tk.Button(search_frame, text='搜索')
button.pack(side=tk.LEFT, padx=10, pady=10)
list_box = tk.Listbox(root)
list_box.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) """2. 点击按钮搜索文件""" def search():
print('按钮被点击了')
# 1. 获取关键字、文件类型
key = key_entry.get()
file_type = type_entry.get()
print(key, file_type)
# 2. 读取 windows 系统的文件
dir_path = filedialog.askdirectory()
print(dir_path) # 遍历文件,实现搜索功能
file_list = os.walk(dir_path)
for root_path, dirs, files in file_list:
# 目录路径,目录下的子目录,目录下的文件
# print(root_path, dirs, files)
for file in files:
# 过滤文件类型,搜索关键字
if type_entry: # py 如果输入了类型,就进行过滤,如果没有输入,就不过滤类型
if file.endswith(file_type):
# 搜索关键字
content = open(root_path + '/' + file, mode='r', encoding='utf-8-sig').read()
if key in content:
print(root_path + '/' + file)
# 把结果显示到界面上
list_box.insert(tk.END, root_path + '/' + file)
# 3. 实现搜索功能
# 4. 将搜索到的结果显示到界面 # 创建滚动窗口并布局到页面上
sb = tk.Scrollbar(root)
sb.pack(side=tk.RIGHT, fill=tk.Y)
sb.config(command=list_box.yview)
list_box.config(yscrollcommand=sb.set) button.config(command=search) def list_click(event):
print('列表框组件的内容被点击了')
# 1. 获取到选中的内容
index = list_box.curselection()[0]
path = list_box.get(index)
print(path)
# 2. 读取选中路径的内容
content = open(path, mode='r', encoding='utf-8').read()
print(content)
# 3. 将内容显示到新的窗口
top = tk.Toplevel(root)
filename = path.split('/')[-1]
top.title(filename)
text = tk.Text(top)
text.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
text.insert(tk.END, content) # 绑定点击事件
list_box.bind('<Double-Button-1>', list_click) root.mainloop()

这个算是比较简单的了,大家可以自行尝试一下,有什么不同的思路都欢迎在评论区发表交流。

如果看不懂的话也有相对应的视频教程

如果觉得对你有帮助,记得点赞三连支持一下哈~

Python小工具:据说这是搜索文件最快的工具!没有之一!一起感受下......的更多相关文章

  1. Python小工具--删除svn文件

    有的时候我们需要删除项目下的svn相关文件,但是SVN会在所有的目录下都创建隐藏文件.svn,手工一个个目录查找然后删除显然比较麻烦.所以这里提供了一个Python小工具用于批量删除svn的相关文件: ...

  2. 有哪些你不知道的python小工具

    python作为越来越流行的一种编程语言,不仅仅是因为它语言简单,有许多现成的包可以直接调用. python中还有大量的小工具,让你的python工作更有效率. 1.- 快速共享 - HTTP服务器 ...

  3. python小工具myqr生成动态二维码

    python小工具myqr生成动态二维码 (一)安装 (二)使用 (一)安装 命令: pip install myqr 安装完成后,就可以在命令行中输入 myqr 查看下使用帮助: myqr --he ...

  4. Python 小程序,对文件操作及其它

    以下是自己写的几个对文件操作的小程序,里面涉及到文件操作,列表(集合,字典)的运用等.比方说,从文件里读取一行数据.分别存放于列表中,再对列表进行操作.如去掉里面的反复项.排序等操作. 常见对文件里行 ...

  5. python小练习1:设计这样一个函数,在桌面的文件夹上创建10个文本,以数字给它们命名。

    python小练习1:设计这样一个函数,在桌面的文件夹上创建10个文本,以数字给它们命名. 使用for循环即可实现: for name in range(1,11): desktop_path='C: ...

  6. Python小实验——读&写Excel文件内容

    安装xlrd模块和xlwt模块 读取Excel文件了内容需要额外的模块-- \(xlrd\),在官网上可以找到下载:https://pypi.python.org/pypi/xlrd#download ...

  7. 文件处理工具 gif合成工具 文件后缀批量添加工具 文件夹搜索工具 重复文件查找工具 网页图片解析下载工具等

    以下都是一些简单的免费分享的工具,技术支持群:592132877,提供定制化服务开发. Gif动图合成工具 主要功能是扫描指定的文件夹里的所有zip文件,然后提取Zip文件中的图片,并合成一张gif图 ...

  8. 掌握这个Python小技巧,轻松构建cytoscape导入文件

    今天小编和大家分享如何借助Python脚本轻松构建cytoscape导入文件.Cytoscape是一个非常适合展示各种相互作用关系的可视化软件. 具体来说就是可以用于蛋白互作网络的展示,miRNA与蛋 ...

  9. 小程序中搜索文件,阅览pdf,分享文件链接,评论表情符号

    小程序中搜索文件,阅览pdf,分享文件链接,评论表情符号 https://blog.csdn.net/hotqin888/article/details/84111389 小程序中打开网页和pdf h ...

随机推荐

  1. pibbtimq高级使用技术,双向通信

    本案例目是是服务端发送客户端,客户端收到反应给服务端,双向通信客户端代码如下:import pikaimport timeconnection = pika.BlockingConnection(pi ...

  2. Ts基本数据类型

    TS的基本数据类型 string let str : string str = 1 //报错 会提示num是字符串 不是数字 str = 'test' //正确 //拼接字符串 let str2 : ...

  3. PHP的Mhash扩展函数的学习

    这次我们要学习的又是一个 Hash 加密扩展.不过这个扩展 Mhash 已经集成在了 Hash 扩展中.同时也需要注意的是,这个扩展已经不推荐使用了,我们应该直接使用 Hash 扩展中的函数来进行 H ...

  4. css3 横屏

    @media screen and (orientation: portrait) { html{ width : 100vmin; height : 100vmax; } body{ width : ...

  5. Linux系列(40) - 自动同步时间chrony

    前言 Centos8开始取消了ntp同步时间,改为chrony同步 chrony工具安装 yum -y install chrony 修改配置文件 将配置文件中的同步服务器修改为国内的时间服务器(推荐 ...

  6. python学习笔记(十三)-python对Excel进行读写修改操作

    日常工作中会遇到Excel的读写问题.我们可以使用xlwt 模块将数据写入Excel表格,使用xlrd 模块从Excel读取数据,使用xlutils模块和xlrd模块结合对Excel数据进行修改.下面 ...

  7. urllib2获取CGI请求的数据

    import urllib.request as urllib2 headers = { 'Authorization': 'Basic YWRtaW46YWRtaW4=', }#需要身份验证时,在请 ...

  8. 『Python』matplotlib共享绘图区域坐标轴

    1. 共享单一绘图区域的坐标轴 有时候,我们想将多张图形放在同一个绘图区域,不想在每个绘图区域只绘制一幅图形.这时候,就可以借助共享坐标轴的方法实现在一个绘图区域绘制多幅图形的目的. import n ...

  9. nginx 配置文件(支持thnkphp3.2~5)

    server { listen 8080 ; server_name localhost; set $root /var/www/myweb; #listen 443 ssl; #ssl_certif ...

  10. 低差异序列 (low-discrepancy sequences)之Hammerysley在半球中采样点方法的介绍

    半球上的Hammersley 源作者:Holger Dammertz 一组关于如何在2D中使用Hammersley点集以在着色器程序中快速实用地生成半球方向的笔记.如果你发现任何错误或有意见,不要犹豫 ...