Python自制搜索小工具,搜索搁置多年得学习资料
前言
大家早好、午好、晚好吖 ❤ ~欢迎光临本文章
不知道你们电脑内的文件多不多,我觉得我的蛮多的(一个盘200G 老红…)
我自己也是不爱整理这些东西,每次翻翻找找,都要找很久
就比如今天,同事过来,想在我这里找些文件,结果硬是搜索了半天,半天没加载出来他想要的东西
索性,就用python写了搜索文件的工具脚本,犄角旮旯的文件都能一秒钟搜索出来的那种!
也不知道你们用的话,能不能搜到些奇奇怪怪的东西,嘿嘿嘿
环境准备
解释器: Python 3.8.8 | Anaconda, Inc.
编辑器: 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)
点击按钮搜索文件
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)
尾语 💝
好了,今天的分享就差不多到这里了!
完整代码、更多资源、疑惑解答直接点击下方名片自取即可。
最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇👇
下一篇:
三步教你配置Java环境
