如何使用PyQT5制作一个敏感词检测工具
发表于:2024-12-01 作者:千家信息网编辑
千家信息网最后更新 2024年12月01日,小编给大家分享一下如何使用PyQT5制作一个敏感词检测工具,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!设计思路:根据敏感词库文件筛选,查看输入的文本中是否包含敏感词汇。从而过滤出相
千家信息网最后更新 2024年12月01日如何使用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安全错误
数据库的锁怎样保障安全
爱奇艺广告服务器在哪里
兰德网络技术有限公司介绍
深圳市积加网络技术有限公司
杭州红珊瑚网络技术有限公司
遥望吉他谱软件开发
学校服务器怎么强制登陆
单词导入数据库
常熟什么是网络技术推荐咨询
华为可信数据库考试
网络安全小课堂有感
直播什么服务器好
校园安全及网络安全心得体会
软件开发河南被抓
饥荒联机版离线服务器启动失败
橘子服务器全称
绝地求生最快服务器
社区团购平台软件开发
视频播放需要服务器支持
石家庄软件开发前景
浙江品质网络技术咨询商家
初一笔记软件开发
网络安全资料z
修改数据库表sql语句
连云港服务器机柜厂家
淮安无线网络技术服务费
武川软件开发
数据库同时查询3张表
阿里地区网络安全现状
网络安全宣传周作用
四川费森伯格互联网科技