PyQt根据关键字读取制定文件夹下文件并将其显示在ListWidget中,附有删除和查看功能

主程序

import os

from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWidgets import QWidget, QApplication, QFileDialog, QDialog
import read_dataui001
import read_dataui001_1 as ui_1
import sys


class MyClass(QWidget,read_dataui001.Ui_Form):
    def __init__(self):
        super().__init__()
        self.src_dir_path = 'H:\树莓派工作'
        self.filelist = os.listdir(self.src_dir_path)
        self.InitUi()

    def InitUi(self):
        self.setupUi(self)
        self.setWindowTitle("小刘")

        self.child1 = QDialog(self)
        self.child1_Ui = ui_1.Ui_Form()
        self.child1_Ui.setupUi(self.child1)

        self._translate = QtCore.QCoreApplication.translate
        self.pushButton.clicked.connect(self.Read_data)
        self.pushButton_2.clicked.connect(self.Delete_data)
        self.lineEdit.textChanged.connect(self.Search_File)
        self.listWidget.doubleClicked.connect(self.MyItem)
        self.show()
    def MyItem(self):  #鼠标双击相应事件
        a = self.listWidget.currentItem()
        self.file = a.text()
        self.file = 'H:\树莓派工作\\' + self.file
    def Delete_data(self):
        if os.path.exists(self.file):  # 如果文件存在
            # 删除文件,可使用以下两种方法。
            os.remove(self.file)
            # os.unlink(path)
        else:
            print('no such file:%s' % self.file)  # 则返回文件不存在
    def Read_data(self):
        if os.path.exists(self.file):
            with open(self.file, encoding='utf-8') as file_obj:
                contents = file_obj.read()
                data = contents.rstrip()
                print(data)
            self.child1_Ui.label.setText(data)
        else :
            self.child1_Ui.label.setText("no such file")
        self.child1.show()
    def List_Data(self,i,data):  #将匹配成功的文件显示在界面上
        item = QtWidgets.QListWidgetItem()
        self.listWidget.addItem(item)
        item = self.listWidget.item(i)
        item.setText(self._translate("Form",data))

    def Search_File(self,path):  #搜索与输入框关键词匹配的文件
        i = 0
        text_data = self.lineEdit.text()
        for file in self.filelist:
            sub_path = os.path.join(self.src_dir_path, file)  # 获取文件的绝对路径
            if (os.path.isdir(sub_path)):  # 判断是否为文件夹,如果是文件夹则忽略
                continue
                # temppath = os.listdir(sub_path)
                # self.Search_File(path)  # 递归调用函数,目的是遍历所有文件
            else:
                if path in file:
                    self.List_Data(i,file)
                    i = i+1


if __name__ == '__main__':
    app = QApplication(sys.argv)
    mc = MyClass()

    sys.exit(app.exec_())

调用程序
1)read_dataui001_1

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(953, 768)
        self.label = QtWidgets.QTextEdit(Form)
        self.label.setGeometry(QtCore.QRect(0, 0, 951, 771))
        self.label.setObjectName("textEdit")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))

2)read_dataui001

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'read_dataui001.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(1130, 580)
        Form.setMaximumSize(QtCore.QSize(1130, 580))
        Form.setStyleSheet("border-color: rgb(0, 85, 255);")
        self.label = QtWidgets.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(40, 40, 300, 50))
        self.label.setMaximumSize(QtCore.QSize(300, 50))
        font = QtGui.QFont()
        font.setPointSize(16)
        self.label.setFont(font)
        self.label.setStyleSheet("background-color: rgb(0, 85, 255);\n"
"border-color: rgb(255, 85, 0);")
        self.label.setFrameShape(QtWidgets.QFrame.Box)
        self.label.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.label.setTextFormat(QtCore.Qt.RichText)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(Form)
        self.label_2.setGeometry(QtCore.QRect(40, 120, 100, 30))
        self.label_2.setMaximumSize(QtCore.QSize(100, 30))
        font = QtGui.QFont()
        font.setPointSize(13)
        self.label_2.setFont(font)
        self.label_2.setStyleSheet("border-color: rgb(255, 0, 0);\n"
"border-left-color: rgb(255, 0, 0);")
        self.label_2.setFrameShape(QtWidgets.QFrame.Box)
        self.label_2.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.label_2.setLineWidth(2)
        self.label_2.setAlignment(QtCore.Qt.AlignCenter)
        self.label_2.setObjectName("label_2")
        self.lineEdit = QtWidgets.QLineEdit(Form)
        self.lineEdit.setGeometry(QtCore.QRect(40, 160, 141, 41))
        self.lineEdit.setObjectName("lineEdit")
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(40, 210, 141, 41))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(Form)
        self.pushButton_2.setGeometry(QtCore.QRect(40, 270, 141, 41))
        self.pushButton_2.setObjectName("pushButton_2")
        self.frame = QtWidgets.QFrame(Form)
        self.frame.setGeometry(QtCore.QRect(190, 90, 911, 461))
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.listWidget = QtWidgets.QListWidget(self.frame)
        self.listWidget.setGeometry(QtCore.QRect(0, 90, 911, 371))
        self.listWidget.setObjectName("listWidget")
        item = QtWidgets.QListWidgetItem()
        self.listWidget.addItem(item)
        self.label_3 = QtWidgets.QLabel(self.frame)
        self.label_3.setGeometry(QtCore.QRect(30, 10, 81, 21))
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(self.frame)
        self.label_4.setGeometry(QtCore.QRect(10, 40, 141, 31))
        self.label_4.setFrameShape(QtWidgets.QFrame.Box)
        self.label_4.setObjectName("label_4")
        self.label_5 = QtWidgets.QLabel(self.frame)
        self.label_5.setGeometry(QtCore.QRect(200, 10, 81, 21))
        self.label_5.setObjectName("label_5")
        self.label_6 = QtWidgets.QLabel(self.frame)
        self.label_6.setGeometry(QtCore.QRect(330, 10, 81, 21))
        self.label_6.setObjectName("label_6")
        self.label_7 = QtWidgets.QLabel(self.frame)
        self.label_7.setGeometry(QtCore.QRect(450, 10, 81, 21))
        self.label_7.setObjectName("label_7")
        self.label_8 = QtWidgets.QLabel(self.frame)
        self.label_8.setGeometry(QtCore.QRect(580, 10, 81, 21))
        self.label_8.setObjectName("label_8")
        self.label_9 = QtWidgets.QLabel(self.frame)
        self.label_9.setGeometry(QtCore.QRect(740, 10, 81, 21))
        self.label_9.setObjectName("label_9")
        self.label_10 = QtWidgets.QLabel(self.frame)
        self.label_10.setGeometry(QtCore.QRect(190, 40, 111, 31))
        self.label_10.setFrameShape(QtWidgets.QFrame.Box)
        self.label_10.setObjectName("label_10")
        self.label_11 = QtWidgets.QLabel(self.frame)
        self.label_11.setGeometry(QtCore.QRect(320, 40, 81, 31))
        self.label_11.setFrameShape(QtWidgets.QFrame.Box)
        self.label_11.setObjectName("label_11")
        self.label_12 = QtWidgets.QLabel(self.frame)
        self.label_12.setGeometry(QtCore.QRect(440, 40, 91, 31))
        self.label_12.setFrameShape(QtWidgets.QFrame.Box)
        self.label_12.setObjectName("label_12")
        self.label_13 = QtWidgets.QLabel(self.frame)
        self.label_13.setGeometry(QtCore.QRect(570, 40, 91, 31))
        self.label_13.setFrameShape(QtWidgets.QFrame.Box)
        self.label_13.setObjectName("label_13")
        self.label_14 = QtWidgets.QLabel(self.frame)
        self.label_14.setGeometry(QtCore.QRect(710, 40, 141, 31))
        self.label_14.setFrameShape(QtWidgets.QFrame.Box)
        self.label_14.setObjectName("label_14")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.label.setText(_translate("Form", "历史测量数据"))
        self.label_2.setText(_translate("Form", "关键词搜索"))
        self.pushButton.setText(_translate("Form", "读取历史数据文件"))
        self.pushButton_2.setText(_translate("Form", "删除历史数据文件"))
        __sortingEnabled = self.listWidget.isSortingEnabled()
        self.listWidget.setSortingEnabled(False)
        item = self.listWidget.item(0)
        item.setText(_translate("Form", "New Item"))
        self.listWidget.setSortingEnabled(__sortingEnabled)
        self.label_3.setText(_translate("Form", "历史项目名称"))
        self.label_4.setText(_translate("Form", "历史项目名称..."))
        self.label_5.setText(_translate("Form", "历史测量线路"))
        self.label_6.setText(_translate("Form", "历史检查人"))
        self.label_7.setText(_translate("Form", "历史起始里程"))
        self.label_8.setText(_translate("Form", "历史里程方向"))
        self.label_9.setText(_translate("Form", "历史测量日期"))
        self.label_10.setText(_translate("Form", "历史项目名称..."))
        self.label_11.setText(_translate("Form", "历史项目名称..."))
        self.label_12.setText(_translate("Form", "历史项目名称..."))
        self.label_13.setText(_translate("Form", "历史项目名称..."))
        self.label_14.setText(_translate("Form", "历史项目名称..."))

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值