如何使用PyQT5制作一个敏感词检测工具

如何使用PyQT5制作一个敏感词检测工具

小编给大家分享一下如何使用PyQT5制作一个敏感词检测工具,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

设计思路:根据敏感词库文件筛选,查看输入的文本中是否包含敏感词汇。从而过滤出相关的敏感词。

导入应用相关的模块。

importosimportloggingimportsys

导入UI界面相关的模块。

fromPyQt5.QtWidgetsimportQApplication,QWidget,QVBoxLayout,QTextEdit,QGridLayout,QLineEdit,QPushButton,QFileDialogfromPyQt5.QtGuiimportQIconimportresource

这个里面的resource模块,是使用python生成的.py形式的资源文件。直接将这个文件导入模块使用可以防止打包时资源文件不能打包的问题。展示一下部分的resource.py文件的代码块。

fromPyQt5importQtCoreqt_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的子线程来实现。

definit_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)

其余的是四个槽函数部分,主要实现将敏感词文件的所有敏感词加载出来。最后将敏感词与输入的文件进行比对。

defdir_btn_click(self):'''选择文件夹:return:'''directory=QFileDialog.getExistingDirectory(self,"选取文件夹",self.cwd)self.dir_sens.setText(directory+'/')defget_sens_files(self):'''获取敏感词文件:return:'''file_paths=[]self.logger.info("开始批文件路径处理")list=os.listdir(self.dir_sens.text())foriinrange(0,len(list)):path=os.path.join(self.dir_sens.text(),list[i])ifos.path.isfile(path):file_paths.append(path)self.logger.info("完成批文件路径处理")returnfile_pathsdefload_sens(self):'''加载敏感词:return:'''paths=self.get_sens_files()sens=[]self.logger.info("开始加载敏感词")forpathinpaths:self.logger.info("当前加载的文件路径是:"+path)withopen(path,"rb")asfile:data=file.readlines()datac=[]forstringindata:try:datac.append(string.decode('utf8').replace('\n','').replace('\r',''))except:self.logger.error("文件:["+path+"]解码出现异常")sens=sens+datacsens=sens+datacself.logger.info("完成加载敏感词")returnsensdefsearch_sens(self):'''搜索敏感词:return:'''text_lis=""sens=self.load_sens()text=self.text_.toPlainText()forseinsens:ifseintextandsenotintext_lis:text_lis=text_lis+seself.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制作一个敏感词检测工具”有了一定的了解,如果想了解更多相关知识,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!

发布于 2022-02-15 20:42:56
收藏
分享
海报
0 条评论
38
上一篇:在Python反编译中如何批量pyc转py 下一篇:laravel辅助函数怎么用
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码