仿everything之python制作本地文件搜索器
主要功能
1.可以快速定位本地文件
2.可以在word和excle文件中搜索匹配内容
界面需求
1.文件搜索按钮
2.浏览路径按钮
3.更新数据库按钮
4.显示文件名和路径列表框
系统设计
1.使用数据库用来存储路径和文件名
2.openpyxl和docx模块实现word和excle文件内部搜索
3.os操作
4.数据库的增删改查
优点与缺点
优点是增加了文件内部搜索
缺点是因为增加了内部搜索导致搜索速度会变慢
需求分析
在现代数据时代的快速发展下,人们的数据越来越多,越来越复杂,经常会忘记自己的一个文件不知道放在哪,这个时候就需要一个文件搜索系统,来快速定位此文件并打开,虽然windows系统一般都会自带搜索框,但自带的搜索太慢,而且不能搜索到内部的内容,比如搜索一个word文件或者excel文件内的一个词语,所以需要一个外部的搜索系统来帮助我们更快更准确得找到我们的文件,所以我们需要一个数据库,来更新存储我们的文件路径等信息,然后通过数据库的查找或者正则表达式查找来快速准确得定位到我们得文件.
除了使用到数据库,还需要程序本身能去查找目录,查找文件,甚至是文件内得内容,目前是word和excel文件使用得比较多,因此搜索功能搜索文件内部的内容先只支持这两个,查找目录和文件需要使用到python的os操作,这是一个十分强大的模块.
功能完成外,还需要一个用户使用的界面,我主要使用了wxpython这个界面,里面需要有搜索按钮,更新数据库按钮,浏览文件按钮,还需要两个listbox来展示我们搜索到的文件路径和名称,告诉用户这是来自文件内部搜索,还是外部搜索,并且可以通过点击其中一行列表可以直接打开文件,这样就达到了从搜索到打开的快捷方式
代码部分:
1、界面
class DirDialog(wx.Frame):
def __init__(self):
"""Constructor"""
super(DirDialog, self).__init__()
wx.Frame.__init__(self, None, wx.ID_ANY, "文件浏览器", pos = (0, 0), size = (730, 580))
self.Center()
panel = wx.Panel(parent = self) # 面板
b = wx.Button(panel, -1, '浏览', pos = (600, 90))
c = wx.Button(panel, -1, '更新搜索范围', pos = (600, 160))
a = wx.Button(panel, -1, '搜索', pos = (600, 50))
self.Bind(wx.EVT_BUTTON, self.search_file, a)
self.Bind(wx.EVT_BUTTON, self.OnButton, b)
self.Bind(wx.EVT_BUTTON, self.update_db, c)
self.inputText1= wx.TextCtrl(panel, -1, '', pos = (87, 50), size = (500, 30), name = 'TC01', style = wx.ALIGN_LEFT)
self.inputText2= wx.TextCtrl(panel, -1, '', pos = (87, 90), size = (500, 30), name = 'TC02', style = wx.ALIGN_LEFT)
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
statictext1 = wx.StaticText(parent = panel, pos = (20, 55), label = '查找内容:')
statictext2 = wx.StaticText(parent = panel, pos = (20, 95), label = '输入路径:')
statictext3 = wx.StaticText(parent = panel, pos = (609, 200), label = '输入路径范围\n以更新数据库')
statictext4 = wx.StaticText(parent = panel, pos = (85, 135), label = '文件名称')
statictext5 = wx.StaticText(parent = panel, pos = (286, 135), label = '文件路径&