如何使用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制作一个敏感词检测工具”有了一定的了解,如果想了解更多相关知识,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!
推荐阅读
-
Python+PyQt如何实现数据库表格动态增删改
-
PyQt5如何使用mimeData实现拖拽事件
-
Python PyQt5如何实现文件拷贝器
-
pyqt5与html数据交互的原理是什么
pyqt5与html数据交互的原理是什么本文小编为大家详细介绍“p...
-
怎么用Python+PyQT5实现手绘图片生成器
-
怎么用PyQT5制作一个桌面摸鱼工具
怎么用PyQT5制作一个桌面摸鱼工具这篇文章主要介绍“怎么用PyQ...
-
如何在pyqt5中展示pyecharts生成的图像
-
如何实现pyqt5圆形label显示打开的摄像头功能
-
pyqt5蒙版遮罩mask,setmask的使用
-
PyQt5实现多张图片显示并滚动