深挖你硬盘里的见不得人的【学习资料】,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('学习资料搜索工具')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.实用英语口语 http://www.8hello.cn/w_show/34/w_show-17067. ...
- 深挖数据价值 阿里云栖开年大会报道
本文讲的是深挖数据价值 阿里云栖开年大会报道[IT168 云计算]经历风雨,转身看到彩虹.在这个"化云为雨"的时节,造云大咖们角色扮演也逐步渐入佳境,或随需而动,或引领潮流.阿里云 ...
- 深挖之后吓一跳,谷歌AI专利何止一个dropout,至少30项今日生效
乾明 郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI "2030年之前,你需要给谷歌交专利费,才能构建简单的神经网络." 这不是一句调侃,而是在慢慢成为现实. 前不 ...
- 专访友盟CEO叶谦:深挖海量终端用户数据的价值
专访友盟CEO叶谦:深挖海量终端用户数据的价值 发表于10小时前| 651次阅读| 来源CSDN| 0 条评论| 作者Banbury 访谈友盟CEO叶谦大数据数据挖掘移动互联网物联网移动开发开发 ...
- 深挖ThreadLocal
先总述,后分析 深挖过threadLocal之后,一句话概括:Synchronized用于线程间的数据共享,而ThreadLocal则用于线程间的数据隔离.所以ThreadLocal的应用场合,最适合 ...
- 数睿数据深度 | 中国软件网对话数睿数据总裁刘超:深挖数据驱动、企业级无代码
<你好,数智新世界>系列访谈 中国软件网对话数睿数据总裁刘超:深挖数据驱动.企业级无代码 摘要:数睿数据极致地追求企业级无代码. 中国软件网对话数睿数据总裁刘超 最近无代码在业界刮起了一股 ...
- 【深挖字符串操作】·万字总结,这些知识点你真的懂了吗?
大家好,我是Duoni! 开始前言 博主介绍:一位不愿透露姓名的艺术生跨界分子 学习阶段:C语言进阶 信念支撑:业精于勤,只要足够肝,世间就没有跨不了的界! 阅前请求:博主自愧没有任何计算机基础,之 ...
- 深挖独立站为何在中东大热
深挖独立站为何在中东大热 一提起独立站,人们脑海里浮现的就是那强大的品牌效应.完整的后端供应链还有让人叫绝的营销策略.独立站更是在中东得以深耕,不少人甚至戏称,中东独立站,是淘金者的天堂. 为何独立站 ...
- 针对亚马逊卖家可深挖的畅销产品建议
在亚马逊平台上,不断有畅销产品涌现,每个品类都有一个best seller排行榜,实时更新,要了解全部畅销产品,这个量还是有点大,但卖家可以先了解亚马逊畅销品品类,然后再深挖个别利基产品.虽然亚马逊上 ...
最新文章
- ORACLE 中为什么要把列名都转换成大写字母?
- NYOJ 467 中缀式变后缀式
- SM3密码杂凑算法源码解析
- SpringBoot—项目启动时几种初始化操作及SpringApplication类详解
- Code Access Security (CAS)
- 双对数坐标系matlab绘图,EXCEL自动计算液塑限并绘制图表至双对数坐标系.doc
- Myeclipse7.X和8.X汉化
- Comprehensive Python Cheatsheet
- 从Python中的另一个文件调用函数
- Google拒绝因搜索不良信息被传唤
- 多图像合成为延时视频的方法
- DIV CSS 网页兼容全搞定 (IE6 IE7 IE8 IE9 火狐 谷歌)
- 计算机能力测试在线题库,全国计算机应用能力考试题库及答案2017
- 信息终端安全是指办公和生产用计算机,从办公终端安全角度考虑,以下哪个是正确的()...
- maya如何查看资源大纲_怎样才算入门了Maya
- 北京农村商业银行:应用质量掘金再造“探秘”之旅
- ipados 蓝牙 android,iPadOS 体验:走出 iOS,iPad 终于能取代 PC 了?
- 【总结】最好的CV学习小组,超200个课时+10个方向+30个项目,从理论到实践全部系统掌握...
- 基岩版刷铁傀儡机制和Java_我的世界:Java版1.14获得铁傀儡的四种方式,第三种千万别忘记...
- Execution failed for task ‘:bootRepackage‘. > Unable to find main class