如何使用PyQT5制作一个敏感词检测工具
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,小编给大家分享一下如何使用PyQT5制作一个敏感词检测工具,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!设计思路:根据敏感词库文件筛选,查看输入的文本中是否包含敏感词汇。从而过滤出相
千家信息网最后更新 2025年01月23日如何使用PyQT5制作一个敏感词检测工具
小编给大家分享一下如何使用PyQT5制作一个敏感词检测工具,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
设计思路:根据敏感词库文件筛选,查看输入的文本中是否包含敏感词汇。从而过滤出相关的敏感词。
导入应用相关的模块。
import osimport loggingimport sys
导入UI界面相关的模块。
from PyQt5.QtWidgets import QApplication,QWidget,QVBoxLayout,QTextEdit,QGridLayout,QLineEdit,QPushButton,QFileDialogfrom PyQt5.QtGui import QIconimport resource
这个里面的resource模块,是使用python生成的.py形式的资源文件。直接将这个文件导入模块使用可以防止打包时资源文件不能打包的问题。展示一下部分的resource.py文件的代码块。
from PyQt5 import QtCoreqt_resource_data = b"\\x00\x00\x2b\x03\\x00\\x01\x6a\xb6\x78\x9c\xed\x5d\x0b\x40\x54\xc5\xfa\x1f\x5c\x95\xf5\\x11\x58\xdd\xb2\x52\xc1\x7c\x84\xa9\xa9\xa5\x29\xec\x6a\x58\x9a\\xf6\xbc\x69\xb7\x6b\x5d\x2b\xb1\xb2\xb4\x7c\x01\x65\xa1\xc0\xee\\xaa\x25\x18\xa4\x66\x6a\xf6\x34\x7a\x78\xcd\x5b\xa6\x66\xb9\x66\\x25\xff\x44\x01\x33\x5f\xf8\xcc\x47\xf8\x7e\xc1\xee\x22\xa0\x28\\xb0\xf3\xff\xcd\x39\x67\xe1\xec\x39\x67\x97\x05\x76\x17\xb0\xf3\\xd3\x8f\xd9\x39\x67\xce\xcc\x37\xdf\x37\xdf\xbc\xce\x9c\x19\x42\\x02\x48\x73\xd2\xab\x57\x2b\xb8\x8d\xc9\xb8\xa6\x84\x2c\x25\x84\\xb4\x6f\xcf\xfb\xcf\x34\x22\x24\x28\x90\x90\x56\xad\x78\x7f\x97\
接下来是UI界面的部分,这次直接是使用UI界面的主线程的槽函数来完成业务逻辑的,并没有使用单独的QThread的子线程来实现。
def init_ui(self): '''初始化日志管理器''' self.logger = logging.getLogger("敏感词检测工具") self.logger.setLevel(logging.DEBUG) self.setFixedWidth(600) self.setWindowIcon(QIcon(':sens.ico')) self.setWindowTitle('敏感词检测小工具 公众号:[Python 集中营]') vbox = QVBoxLayout() self.text_ = QTextEdit() self.text_.setPlaceholderText('请输入要检测的文本信息...') self.text_.setMaximumHeight(120) self.text_lis = QTextEdit() self.text_lis.setPlaceholderText('文中存在的敏感词信息...') self.text_lis.setReadOnly(True) self.text_lis.setMaximumHeight(60) grid = QGridLayout() self.dir_sens = QLineEdit() self.dir_sens.setPlaceholderText('敏感词库路径') self.dir_sens.setReadOnly(True) self.dir_btn = QPushButton() self.dir_btn.setText('获取敏感词库') self.dir_btn.clicked.connect(self.dir_btn_click) grid.addWidget(self.dir_sens, 0, 0, 1, 2) grid.addWidget(self.dir_btn, 0, 2, 1, 1) self.lis_btn = QPushButton() self.lis_btn.setText('开始检测') self.lis_btn.clicked.connect(self.search_sens) vbox.addWidget(self.text_) vbox.addWidget(self.text_lis) vbox.addLayout(grid) vbox.addWidget(self.lis_btn) self.setLayout(vbox)
其余的是四个槽函数部分,主要实现将敏感词文件的所有敏感词加载出来。最后将敏感词与输入的文件进行比对。
def dir_btn_click(self): ''' 选择文件夹 :return: ''' directory = QFileDialog.getExistingDirectory(self, "选取文件夹", self.cwd) self.dir_sens.setText(directory + '/') def get_sens_files(self): ''' 获取敏感词文件 :return: ''' file_paths = [] self.logger.info("开始批文件路径处理") list = os.listdir(self.dir_sens.text()) for i in range(0, len(list)): path = os.path.join(self.dir_sens.text(), list[i]) if os.path.isfile(path): file_paths.append(path) self.logger.info("完成批文件路径处理") return file_paths def load_sens(self): ''' 加载敏感词 :return: ''' paths = self.get_sens_files() sens = [] self.logger.info("开始加载敏感词") for path in paths: self.logger.info("当前加载的文件路径是:" + path) with open(path, "rb") as file: data = file.readlines() datac = [] for string in data: try: datac.append(string.decode('utf8').replace('\n', '').replace('\r', '')) except: self.logger.error("文件:[" + path + "]解码出现异常") sens = sens + datac sens = sens + datac self.logger.info("完成加载敏感词") return sens def search_sens(self): ''' 搜索敏感词 :return: ''' text_lis = "" sens = self.load_sens() text = self.text_.toPlainText() for se in sens: if se in text and se not in text_lis: text_lis = text_lis + se self.logger.info("包含敏感词:" + text_lis) self.text_lis.setText(text_lis)
最后,直接使用main()函数启动整个应用。
if __name__ == '__main__': app = QApplication(sys.argv) main = SensListen() main.show() sys.exit(app.exec_())
以上就是完整的实现过程,有需要的小伙伴直接将所有代码复制到自己的开发工具中启动main()函数就可以啦!
输入敏感词直接在界面上进行检测,检测到的敏感词会显示在下面的文本框中。
看完了这篇文章,相信你对"如何使用PyQT5制作一个敏感词检测工具"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
文件
检测
工具
函数
模块
界面
路径
输入
文本
词库
部分
制作
代码
信息
文件夹
篇文章
线程
资源
处理
应用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
工厂网络技术方案
网络安全的监督
为什么要用托管服务器
数据库有哪些分类
网络安全龙头华为
辽宁采购管理软件开发公司
软件开发培训专业
查询服务器位置
数据库系统的核心主要是什么
天使之战服务器端
自学软件开发公司
聘请网络安全第三方机构的请示
网络安全的时效性
数据库侵入
完成服务器配置完整步骤
网络安全专业技术课件
延安软件开发群
网页上传文件到数据库
软件开发输入图片
计算机审计中的数据库技术
合肥网络技术学院
网络安全构成什么内容
寮步定制软件开发
福州网络安全大队
成都众信互联网络科技
软件测试软件开发培训
网络安全人员体系化建设
网络安全保障先进事迹
数据库的模式是干嘛的
四川pdu服务器专用电源咨询