Python+PyQt5来实现文件高速查找
更新时间:2023年07月19日 11:37:12 作者:W金刚葫芦娃W
这篇文章主要为大家详细介绍了如何模拟Everything,即通过python+PyQt5来实现可视化文件的高速查找,文中的示例代码讲解详细,需要的可以参考一下
一、功能
模拟Everything,通过python+PyQt5来实现可视化文件的高速查找。
二、代码
import os import threading from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit, QTextBrowser, QPushButton, QComboBox from PyQt5.QtGui import QFont from PyQt5.QtCore import Qt, pyqtSignal, QObject class FileSearchThread(QObject): search_result_found = pyqtSignal(str) search_finished = pyqtSignal() def __init__(self, disk, search_text): super().__init__() self.disk = disk self.search_text = search_text self.found_files = [] def search_files(self): for root, dirs, files in os.walk(self.disk): for file in files: if self.search_text.lower() in file.lower(): file_path = os.path.join(root, file) self.found_files.append(file_path) self.search_result_found.emit(file_path) self.search_finished.emit() class FileSearchApp(QWidget): def __init__(self): super().__init__() self.setWindowTitle('文件搜索') self.setGeometry(200, 600, 1340, 800) self.search_label = QLabel("搜索关键字:") self.search_label.setFont(QFont('Arial', 12)) self.search_textbox = QLineEdit() self.search_textbox.setFont(QFont('Arial', 12)) self.search_button = QPushButton('搜索') self.search_button.setFont(QFont('Arial', 12)) self.search_button.clicked.connect(self.start_search) self.search_results = QTextBrowser() self.search_results.setFont(QFont('Arial', 12)) self.search_status_label = QLabel() self.search_status_label.setFont(QFont('Arial', 12)) layout = QVBoxLayout() layout.addWidget(self.search_label) layout.addWidget(self.search_textbox) layout.addWidget(self.search_button) layout.addWidget(self.search_status_label) layout.addWidget(self.search_results) self.setLayout(layout) def start_search(self,disks): disks= ['C:','D:','E:','F:'] #本地电脑的磁盘列表 search_text = self.search_textbox.text() # print(disk) self.search_results.clear() self.search_status_label.setText("正在搜索...") self.search_status_label.adjustSize() for disk in disks: if disk and search_text: file_search_thread = FileSearchThread(disk, search_text) file_search_thread.search_result_found.connect(self.display_result) file_search_thread.search_finished.connect(self.search_finished) self.worker_thread = threading.Thread(target=file_search_thread.search_files) self.worker_thread.start() def display_result(self, file_path): self.search_results.append(file_path) def search_finished(self): self.search_status_label.setText("搜索完成") self.search_status_label.adjustSize() self.worker_thread.join() if __name__ == '__main__': app = QApplication([]) file_search_app = FileSearchApp() file_search_app.show() app.exec_()
三、运行结果
到此这篇关于Python+PyQt5来实现文件高速查找的文章就介绍到这了,更多相关Python文件查找内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Django drf使用Django自带的用户系统的注册功能
本文主要介绍了Django drf使用Django自带的用户系统的注册功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-02-02树莓派上利用python+opencv+dlib实现嘴唇检测的实现
本文主要介绍了树莓派上利用python+opencv+dlib实现嘴唇检测的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-10-10
最新评论