前言
嗨嗨,大家晚上好 ~ 当自己电脑文件很多还有点乱,不记得自己文件放哪里的时候,用电脑自带的搜索文件,这个等待时间可慢了
对我们这种敲代码的,这能忍吗,所以我们不如自己用python做一个搜索工具!犄角旮旯的文件都能一秒钟搜索出来的那种! 一不小心还能把你们男(女)朋友那些藏的很深的不可告人的文件分分钟找出来~
话不多说,赶紧开始吧
环境准备
- 解释器: Python 3.8.8 | Anaconda, Inc.
- 编辑器: pycharm 专业版
不会安装的可以私信我哦 😎
完整代码
就不把代码单列出来咯,一次全放出来 ~ 我在里面写了注释哦
需要源码、教程,或者是自己有关python不懂的问题,都可以来这里哦 https://jq.qq.com/?_wv=1027&k=j1rUTY72 这里还有学习资料与免费课程领取
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('按钮被点击了')
key = key_entry.get()
file_type = type_entry.get()
print(key, file_type)
dir_path = filedialog.askdirectory()
print(dir_path)
file_list = os.walk(dir_path)
for root_path, dirs, files in file_list:
for file in files:
if type_entry:
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)
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('列表框组件的内容被点击了')
index = list_box.curselection()[0]
path = list_box.get(index)
print(path)
content = open(path, mode='r', encoding='utf-8').read()
print(content)
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的问题,可以在评论区留言或者私信我哦 觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/
|