Python小妙招,自制搜索小工具,搜索速度嘎嘎快

本文介绍了一位作者如何使用Python和Tkinter库创建一个简单的图形用户界面,用于快速搜索电脑上的文件。通过输入关键字和文件类型,该工具能帮助用户在文件夹中定位所需内容,解决了文件管理混乱的问题。
摘要由CSDN通过智能技术生成

前言

嗨嗨,大家晚上好 ~

不知道你们电脑内的文件多不多,我觉得我的蛮多的(一个盘400G 老红…)

我自己也是不爱整理这些东西,每次翻翻找找,都要找很久

就比如今天,同事过来,想在我这里找些文件,结果硬是搜索了半天,半天没加载出来他想要的东西

没办法,凡是还是得靠自己啊

索性,就用python写了搜索文件的工具脚本,犄角旮旯的文件都能一秒钟搜索出来的那种!

也不知道你们用的话,能不能搜到些奇奇怪怪的东西

话不多说,赶紧开始吧

请添加图片描述

环境准备

  • 解释器: Python 3.8.8 | Anaconda, Inc.
  • 编辑器: pycharm 专业版

不会安装的可以私信我哦 😎

完整代码

可以点击文末直接领取

就不把代码单列出来咯,一次全放出来 ~
我在里面写了注释哦

请添加图片描述

源码领取309488165 ###
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)

"""点击按钮搜索文件"""


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)

最后

今天的分享到这里就结束咯 我要收拾收拾下班了哈哈

咱明天见 ,下次见

有什么不懂的可以点击文末名片进行学习交流哦

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值