前言

今天来教大家做一个文件搜索工具,专门来找你电脑里的【学习资料】,嘿嘿

开发环境

  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('学习资料搜索工具')root.mainloop()

搜索栏

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('按钮被点击了')button.config(command=search)

1. 获取关键字、文件类型

key = key_entry.get()
file_type = type_entry.get()
print(key, file_type)

2. 实现搜索功能

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)

创建滚动窗口并布局到页面上

sb = tk.Scrollbar(root)
sb.pack(side=tk.RIGHT, fill=tk.Y)
sb.config(command=list_box.yview)
list_box.config(yscrollcommand=sb.set)

触发绑定事件

list_box.bind('<Double-Button-1>', list_click)

1. 获取到选中的内容

def list_click(event):print('列表框组件的内容被点击了')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)

深挖你硬盘里的见不得人的【学习资料】,Python制作一款文件搜索工具相关推荐

  1. 自己收藏在博客里的英语口语学习资料,贴出来分享给大家

    自己博客里收藏了好多别人总结出来的学习资料,呵呵 ,学习起来比较方便,贴出来一些分享给大家. 1.实用英语口语 http://www.8hello.cn/w_show/34/w_show-17067. ...

  2. 深挖数据价值 阿里云栖开年大会报道

    本文讲的是深挖数据价值 阿里云栖开年大会报道[IT168 云计算]经历风雨,转身看到彩虹.在这个"化云为雨"的时节,造云大咖们角色扮演也逐步渐入佳境,或随需而动,或引领潮流.阿里云 ...

  3. 深挖之后吓一跳,谷歌AI专利何止一个dropout,至少30项今日生效

    乾明 郭一璞 发自 凹非寺  量子位 报道 | 公众号 QbitAI "2030年之前,你需要给谷歌交专利费,才能构建简单的神经网络." 这不是一句调侃,而是在慢慢成为现实. 前不 ...

  4. 专访友盟CEO叶谦:深挖海量终端用户数据的价值

     专访友盟CEO叶谦:深挖海量终端用户数据的价值 发表于10小时前| 651次阅读| 来源CSDN| 0 条评论| 作者Banbury 访谈友盟CEO叶谦大数据数据挖掘移动互联网物联网移动开发开发 ...

  5. 深挖ThreadLocal

    先总述,后分析 深挖过threadLocal之后,一句话概括:Synchronized用于线程间的数据共享,而ThreadLocal则用于线程间的数据隔离.所以ThreadLocal的应用场合,最适合 ...

  6. 数睿数据深度 | 中国软件网对话数睿数据总裁刘超:深挖数据驱动、企业级无代码

    <你好,数智新世界>系列访谈 中国软件网对话数睿数据总裁刘超:深挖数据驱动.企业级无代码 摘要:数睿数据极致地追求企业级无代码. 中国软件网对话数睿数据总裁刘超 最近无代码在业界刮起了一股 ...

  7. 【深挖字符串操作】·万字总结,这些知识点你真的懂了吗?

    大家好,我是Duoni!  开始前言 博主介绍:一位不愿透露姓名的艺术生跨界分子 学习阶段:C语言进阶 信念支撑:业精于勤,只要足够肝,世间就没有跨不了的界! 阅前请求:博主自愧没有任何计算机基础,之 ...

  8. 深挖独立站为何在中东大热

    深挖独立站为何在中东大热 一提起独立站,人们脑海里浮现的就是那强大的品牌效应.完整的后端供应链还有让人叫绝的营销策略.独立站更是在中东得以深耕,不少人甚至戏称,中东独立站,是淘金者的天堂. 为何独立站 ...

  9. 针对亚马逊卖家可深挖的畅销产品建议

    在亚马逊平台上,不断有畅销产品涌现,每个品类都有一个best seller排行榜,实时更新,要了解全部畅销产品,这个量还是有点大,但卖家可以先了解亚马逊畅销品品类,然后再深挖个别利基产品.虽然亚马逊上 ...

最新文章

  1. ORACLE 中为什么要把列名都转换成大写字母?
  2. NYOJ 467 中缀式变后缀式
  3. SM3密码杂凑算法源码解析
  4. SpringBoot—项目启动时几种初始化操作及SpringApplication类详解
  5. Code Access Security (CAS)
  6. 双对数坐标系matlab绘图,EXCEL自动计算液塑限并绘制图表至双对数坐标系.doc
  7. Myeclipse7.X和8.X汉化
  8. Comprehensive Python Cheatsheet
  9. 从Python中的另一个文件调用函数
  10. Google拒绝因搜索不良信息被传唤
  11. 多图像合成为延时视频的方法
  12. DIV CSS 网页兼容全搞定 (IE6 IE7 IE8 IE9 火狐 谷歌)
  13. 计算机能力测试在线题库,全国计算机应用能力考试题库及答案2017
  14. 信息终端安全是指办公和生产用计算机,从办公终端安全角度考虑,以下哪个是正确的()...
  15. maya如何查看资源大纲_怎样才算入门了Maya
  16. 北京农村商业银行:应用质量掘金再造“探秘”之旅
  17. ipados 蓝牙 android,iPadOS 体验:走出 iOS,iPad 终于能取代 PC 了?
  18. 【总结】最好的CV学习小组,超200个课时+10个方向+30个项目,从理论到实践全部系统掌握...
  19. 基岩版刷铁傀儡机制和Java_我的世界:Java版1.14获得铁傀儡的四种方式,第三种千万别忘记...
  20. Execution failed for task ‘:bootRepackage‘. > Unable to find main class

热门文章

  1. 大咖实录 漆远蚂蚁金服首席数据科学家等演讲实录
  2. qt 使用插件astyle_为Qt Creator 开发astyle代码格式化插件
  3. 计算机二级填空题输出,计算机二级编程填空题
  4. Taro项目 实现一个在页面内自由拖拽的滑块,仿苹果手机的辅助按钮
  5. Java调用第三方webService服务
  6. 新媒之家是怎么带我走向成功?
  7. 为什么电商行业都用ERP?
  8. hdu_oj1538A Puzzle for Pirates(海盗分金)
  9. AI大模型已经出现不可预测的能力
  10. Java开发唯一性校验技巧