如何使用PyQT5制作一个敏感词检测工具
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,小编给大家分享一下如何使用PyQT5制作一个敏感词检测工具,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!设计思路:根据敏感词库文件筛选,查看输入的文本中是否包含敏感词汇。从而过滤出相
千家信息网最后更新 2025年11月14日如何使用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安全错误
数据库的锁怎样保障安全
网络安全动漫人物
赤城天气预报软件开发
阿里云服务器为什么没有ip
化州电力软件开发
手游服务器怎么投诉
数据库怎么打开一个新的页面
软件开发商要承担哪些责任
软件开发免费中文版
安徽如履云网络技术有限公司
超赢互联网科技
数据库日志文件还原
关于网络安全落实情况汇报
意识形态网络安全主题班会
函授网络安全
梦幻西游选服务器
互联网和网络安全的关系
中央关于网络安全工作
上位机软件开发软件
按1出现服务器管理器
软件开发毕业
关于网络安全的图片带有图标
云南北斗子母钟服务器云空间
违反网络安全法著名事例
合规管理软件开发有哪些公司
深海迷航服务器怎么弄
淄博计算机软件开发
数字生活中的网络安全
上海服务器防火墙分类
oracle数据库备份怎么导入
微服务中需要调用不同数据库