Python 实现全盘文件搜索


Python 实现全盘文件搜索

1 简介

配套软件版本:Python 3.8+pycharm

功        能: 按照输入的字符对全盘文件进行搜索,将包含输入字符的文件名称及其路径显示到界面中。

2 PyCharm&Pyqt的配置说明

2.1 模块安装

需要安装模块pyqt5,designer,

安装方法:pip install pyqt5

          pip install pyqt5-tools

2.2 按照以下步骤将安装的模块设置为external tools

步骤1

打开PyCharm,选择Settings -> Tools -> External Tools,点击左上角的绿色加号。

 

 


步骤2

Name填入QtDesigner(方便后续使用,名称无所谓)。Program选择我们安装的PyQt5-tools下面的designer.exe。Working directory填$FileDir$。然后点击OK,则添加了QtDesigner作为PyCharm的外置工具。

 

 


步骤3

按照同样的步骤添加PyUIC(UI转换工具)。(PyUIC的Program为Python.exe,在Python的安装目录下面的Scripts目录下,Working directory $FileName$,Arguments则填入如下代码:

-m PyQt5.uic.pyuic  $FileName$ -o $FileNameWithoutExtension$.py

 

 

 

步骤4

最后添加pyrcc用于PyQt5的资源文件转码。具体配置与上述内容相同,Arguments填入:

$FileName$ -o $FileNameWithoutExtension$_rc.py

 

 

 

步骤5

退出之前,点击Apply保存配置。配置完成之后,PyCharm中会加入3个工具。

可以在Tools-》External Tools中查看

 

3 Desinger实现界面设置

步骤1

打开Pycharm-》Tools-》External Tools-》Qt Designer-》选择Main Window-》点击创建。

步骤2

从左边的Widget Box中分别选择添加Line Edit/Push Button/List Widget

步骤3

手动调整大小&从上方的工具栏中,选择参数

 

 

(不同的布局式,水平、垂直、表格)。将窗口调整为适合的布局。(按下ctl +R进行查看)

步骤4:选中步骤2的Widget,在右侧的属性编辑器中,编辑属性。

如:QMainWindow的window Title:搜索本地文件

 

 

 

Pushbutton的快捷键:

 

 

 

步骤4保存文件(.ui文件)

4 Py文件修改

步骤1:在Pycharm选中ui文件,右击选择External Tools->PyUIC-》将会在当前目录中生成对应的py文件

步骤2main文件中import步骤1中档的py文件,并在main中添加如下命令,点击运行,查看是否第3中的窗口。

app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = everything.Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

 

5 实现文件搜索

我们新建一个 ()的方法search_slot(),将其作为按钮点击信号的槽函数。

def search_slot(self):
    start_time = time.time()
    print(start_time)
    kw = self.lineEdit.text()  # 获取搜索词
    self.listWidget.clear()
    t = []
    for i in range(65, 91):
        vol = chr(i) + ':'
        if os.path.isdir(vol):
            for root, dirs, files in os.walk(vol, topdown=1):
                for name in files:
                    if kw in name:
                        # print(os.path.join(root, name))
                        pa1 = os.path.join(root, name)
                        t.append(pa1)
                        f = QtWidgets.QListWidgetItem(pa1)  # 创建一个搜索结果项
                        self.listWidget.addItem(f)
    end_time = time.time()
    print(f'程序运行耗时:{(end_time - start_time):.2f}s')

 

接着将按钮的点击信号进行绑定:

self.pushButton.clicked.connect(self.search_slot)

 

选中文件:

def click_slot(self):
    print(self.listWidget.currentItem().text())
    os.startfile(str(self.listWidget.currentItem().text()))

打开文件:

self.listWidget.itemClicked['QListWidgetItem*'].connect(self.click_slot)

6 不足,待优化

无法对搜索结果操作,(打开、打开路径、删除)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM