使用tkinter开发的一款可扫描并删除本地文件敏感词的Windows软件

大致功能:可指定扫描Windows上的某个目录的所有文件,单个文件扫描,目前适配支持的文件后缀有:"pdf"、"txt、"doc"、"docx",软件是开源的,大家可以在此基础上扩展更多类型的后缀。扫描到某个文件内容中包含敏感词时,会把这个文件名放到异常文件列表,等待忽略或者删除(删除文件内容中的敏感词)操作。支持导出扫描的文件和包含的敏感词。

github开源地址:GitHub -2424004764/scan-folder-all-file: 使用tkinter开发的一款可扫描并删除本地文件敏感词的Windows软件

软件界面如下:

先点击选择文件夹按钮,之后软件开始自动扫描这个文件夹下的所有文件,子文件夹也不会放过,扫描为逐个文件扫描,扫描到的文件先在已扫描文件列表显示,如果这个文件包含敏感词,则会出现在异常文件列表中,再异常文件列表中可以对这个文件进行删除操作,可删除这个文件中所有敏感词。如某个txt文件中包含"123测试456测试",我们的敏感词库中就有"测试",那么执行删除操作后,文件内容就变成了"123456",删除了所有的"测试"字样。

来一个测试,我在桌面有一个test文件:

扫描一下:

显示扫描到来敏感词,我们点击删除:

敏感词被删除了。

支持的功能:

1、默认状态仅可点击选择文件夹按钮,导出、停止按钮此时不可用

2、逐个扫描并显示已扫描文件和异常文件(包含敏感词)

2.1、此时会逐个追加到列表,并在列表可忽略或删除操作

2.2、扫描过程中会给已扫描的文件加索引号,删除或忽略时自动重排索引

3、扫描过程可中断

4、扫描完成后可导出已扫描文件和异常文件

5、导出的异常文件包含所有敏感词

6、敏感词可配置、可扩展,目前仅能从本地加载,未来可扩展为从云端加载,动态扩展敏感词库

7、删除文件时是真实删除电脑系统文件!,请谨慎操作,不提供恢复方法

7.1、删除后会先删除电脑文件,再删除列表文件

8、点击忽略时将该文件从已扫描列表或者异常文件列表剔除,后续的导出就不会导出这个文件了

9、软件可自由配置标题和logo,后续也可通过云端获取配置的方式加载

10、扫描过程中动态展示已扫描的文件夹数量和已扫描的文件数

11、重新选择一个文件扫描时,上一次的扫描结果会自动清空,且导出、选择文件夹按钮暂时不可用,

此时停止扫描按钮变为可用状态

12、界面可以放大缩小,不影响功能和显示

13、可自由打包为exe

更新:

1、支持扫描文件内容

2、支持删除文件内容

3、支持的文件类型:txt、pdf、doc、docx

4、导出的异常文件报告包含该文件包含的所有敏感词

配置:

1、可配置软件标题

打开consts.py:

更改SOFT_NAME的值

2、可配置软件logo

将本地的logo.ico替换重新运行即可

3、更新敏感词库

打开consts.py:

对ERROR_WORDS操作即可,可新增、删除、修改

如新增一个敏感词为“测试”,在原有基础上:ERROR_WORDS = [

"木马", "命令", "shell"

]

修改为:ERROR_WORDS = [

"木马", "命令", "shell", "测试"

]

注意不要改变产量名或者数据结构!

未来展望:

1、敏感词库可以云端管理,软件启动后自动加载云端敏感词库

2、扫描的所有文件名都可以上传云端服务器分析

3、扫描完成可发送短信或邮件通知

4、可扫描文件内容,通过本地读取文件内容方式判断是否为病毒文件或者异常文件

项目运行:

1、python版本建议3.10

2、建议使用conda虚拟环境,配置好虚拟环境后,使用命令安装项目所需包:

pip install -r requirements.txt

3、运行:使用命令:

python main.py

或者在pycharm打开的话,点击运行按钮即可一键启动

4、打包为exe可执行文件:

pyinstaller --noconsole -y --add-data "*;." --add-data "./logo.ico;." -i logo.ico -F -n 扫描文件 main.py

--noconsole指令表示不显示控制台

-y指令表示默认选择确定,因为可能重复打包,需要询问是否删除之前打包好的exe

--add-data 将当前目录下所有内容一起打包

-i logo.ico 指定logo

-F 产生一个文件用以部署,没有其余文件

-n 指定软件名

打包的exe在dist下,二次打包前,最好先删除dist、build两个文件夹和扫描文件.spec文件

代码参考:

1、解析doc、docx:
https://blog.csdn.net/weixin_40449300/article/details/79143971

目前存在的问题:

1、修改pdf文件后,pdf文件大小会暴增,我自己测试新增的一个15kb的pdf在我删除其中的某些关键字后,大小变成了800kb。

这篇文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。

想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。

感谢你的阅读与支持,期待在未来的文章中与你再次相遇!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/7180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

servlet-request(请求)-请求转发

request请求 request 请求index.jsplogin.jspsuccess.jspLoginServletSuccessServlet响应写入用户名和密码测试请求转发success.jsp页面测试请求转发SuccessServlet 页面测试重定向SuccessServlet 页面测试 request 请求 作用:获取浏览器发送过来的数据 组成部分&a…

【数据结构初阶】希尔排序

鼠鼠最近学习了希尔排序,做个笔记! 希尔排序也是插入排序的一种捏!本篇博客也是用排升序来举例捏! 希尔排序是基于直接插入排序的,是由大佬D.L.Shell提出的。 目录 1.希尔排序 1.1.预排序 1.2.直接插入排序 2.希…

自动化运维工具---Ansible

一 Puppet Puppet是历史悠久的运维工具之一。它是一种基础架构即代码(laC)工具,使用户可以定义其基础 架构所需的状态,并使系统自动化以实现相同状态。 Puppet可监视用户的所有系统,并防止任何偏离已定义状态的情况。从简单的工作流程自动…

代码本地化

目的 代码本地化(Localization)是指将软件应用程序中的文本、图形、声音和其他内容翻译成特定语言的过程,同时确保这些内容在目标文化中适当地呈现。本地化不仅仅是对文本进行翻译,还包括对日期、时间、数字、货币、排序顺序、文本…

04-19 周四 GitHub CI 方案设计

04-19 周四 GitHub CI 方案设计 时间版本修改人描述2024年4月19日14:44:23V0.1宋全恒新建文档2024年4月19日17:22:57V1.0宋全恒完成部署拓扑结构的绘制和文档撰写 简介 需求 由于团队最近把代码托管在GitHub上,为解决推理、应用的自动化CI的需要,调研了…

最近惊爆谷歌裁员

Python团队还没解散完,谷歌又对Flutter、Dart动手了。 什么原因呢,猜测啊。 谷歌裁员Python的具体原因可能是因为公司在进行技术栈的调整和优化。Python作为一种脚本语言,在某些情况下可能无法提供足够的性能或者扩展性,尤其是在…

分析:Palo Alto在从SASE向SASO演进中定位不佳

摘要 我们通过上一篇文章(Fortinet的愿景——超越SASE)中应用于Fortinet的相同框架来回顾Palo Alto Network在网络和网络安全方面的前景。 SASE涉及数据传输的第一英里。不过,随着SASE的发展,投资者还需要考虑中间和最后一英里。…

【JavaScript】数据类型转换

JavaScript 中的数据类型转换主要包括两种:隐式类型转换(Implicit Type Conversion)和显式类型转换(Explicit Type Conversion)。 1. 隐式类型转换(自动转换): js 是动态语言&…

Docker搭建LNMP+Wordpress的实验

目录 一、项目的介绍 1、项目需求 2、服务器环境 3、任务需求 二、Linux系统基础镜像 三、部署Nginx 1、建立工作目录 2、编写Dockerfile 3、准备nginx.conf配置文件 4、设置自定义网段和创建镜像和容器 5、启动镜像容器 6、验证nginx 三、Mysql 1、建立工作目录…

Kalign 3:大型数据集的多序列比对

之前一直用的是muscle,看到一个文章使用了Kalign,尝试一下吧 安装 wget -c https://github.com/TimoLassmann/kalign/archive/refs/tags/v3.4.0.tar.gz tar -zxvf v3.4.0.tar.gz cd kalign-3.4.0 mkdir build cd build cmake .. make make test su…

【数据结构与算法】之五道链表进阶面试题详解!

目录 1、链表的回文结构 2、相交链表 3、随机链表的复制 4、环形链表 5、环形链表(||) 6、完结散花 个人主页:秋风起,再归来~ 数据结构与算法 个人格言:悟已往之不谏,知…

【搜索技能】外链

文章目录 前言一、外链是什么?二、如何进行外链调查?总结 前言 今儿因为在搜索一个很感兴趣的软件,但是软件信息所在的网址非常有限。因此产生了一个念头:我能不能找到所有的包含了或者是引用了这个网站的网站呢? 调查之下&…

解密SSL/TLS:密码套件扫描仪的深度解析(C/C++代码实现)

解密SSL/TLS流量通常是为了分析和审计加密通信,以确保数据传输的安全性和合规性。密码套件扫描仪是实现这一目的的一种工具,它可以提供关于SSL/TLS配置的详细信息,帮助安全专家评估潜在的风险。 SSL/TLS协议基础 SSL/TLS协议是网络安全中不…

select,poll,epoll

在 Linux Socket 服务器短编程时,为了处理大量客户的连接请求,需要使用非阻塞I/O和复用,select,poll 和 epoll 是 Linux API 提供的I/O复用方式。 \selectpollepoll操作方式遍历遍历回调底层实现数组链表哈希表IO效率每次调用都进…

C语言/数据结构——每日一题(环形链表的约瑟夫问题)

一.前言 今天在牛客网上面看到了一道环形链表题,想着和大家们分享一下。可能我有点笨,那道题的链接我没搞好,所以很抱歉,只能麻烦大家们看一下截屏的题目信息了。废话不多数,让我们开始今天的题目分享吧。 二.正文 …

ComfyUI中的图像稀释处理

用下面的节点对图片进行稀释处理,如下 为0表示不变,我设置大一点,设置为0.5看看,如下 图像就暗淡了一些,但是还是有一些彩色的,相当于把它放在水里浸泡了一样,掉色了,这就是稀释&…

公网tcp转流

之前做过几次公网推流的尝试, 今天试了UDP推到公网, 再用TCP从公网拉下来, 发现不行, 就直接改用TCP转TCP了. 中间中转使用的python脚本, 感谢GPT提供技术支持: import socket import threadingdef tcp_receiver(port, forward_queue):"""接收TCP数据并将其放入…

LLM应用:工作流workflow创建自定义模版使用

参考: https://www.coze.cn/ 本案例是在coze平台上操作的,也有其他工具支持工作流的创建例如dify;也例如图像生成的comfyui工作流工具 创建自定义模版 可以根据自己需求创建自己的工作流工具;本文案例是创建一个联网搜索的LLM应用: 创建工作流页面: https://www.coze.c…

X 推出 Stories 功能,由 Grok AI 生成新闻摘要

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Python自动化测试【selenium面试题】

一、selenium中如何判断元素是否存在? expected_conditions模块提供了16种判断方法,以下方法是判断元素存在DOM中: presence_of_element_located """ An expectation for checking that an element is present on the DOM of…