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

news2024/11/17 15:48:37

大致功能:可指定扫描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.coloradmin.cn/o/1658143.html

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

相关文章

什么是HTTP?

什么是HTTP? HTTP基本概念HTTP 是什么?HTTP 常见的状态码有哪些?HTTP 常见字段有哪些? HTTP特性HTTP/1.1 的优点有哪些?HTTP/1.1 的缺点有哪些? HTTP基本概念 HTTP 是什么? HTTP 是超文本传输…

44.乐理基础-音符的组合方式-附点

内容参考于: 三分钟音乐社 首先如下图,是之前的音符,但是它不全,比如想要一个三拍的音符改怎样表示? 在简谱中三拍,在以四分音符为一拍的情况下,在后面加两根横线就可以了,称为附点…

C++:重载、重写与重定义

一、重载、重写与重定义的概念 C中,重载、重写和重定义是三个与函数和类成员相关的概念,但它们具有不同的含义和用途。 重载:是指在同一作用域内,可以有多个名称相同但参数列表(参数类型、参数个数或参数顺序&#x…

Web3加密空投入门:空投类型有哪些?如何避免限制?

今天分享空投如何避免限制以提高效率,增加成功几率,首先我们来了解什么是空投加密,有哪些空投类型。 一、什么是空投加密? 加密货币空投是一种营销策略,包括向用户的钱包地址发送免费的硬币或代币。 加密货币项目使用…

【算法练级js+java】旋转字符串判断是否相等

每一天一道算法题训练,努力打开编程思维,才能进大厂光明正大的泡心仪的小姐姐!!(手动捂脸) 题目 /** * 给定字符创A和B * 旋转字符串A,就是把最左边的移动到最右边 * 比如A‘abcde’,在移动一次之后结果就是bcdea * 如果若干次之…

揭秘新时代的内容创作:一键生成的AI黑科技

在数字媒体的浪潮下,内容创作已成为连接人与信息的重要桥梁。然而,头条、公众号等平台上的爆文创作,对很多内容创作者来说却是一项挑战。“从选题到找素材,再到成文,”这个过程不仅耗时至少1到2个小时,而且…

word图片水印

一、word中旧水印如何删除 打开word模板,想要删除旧水印,如下图所示操作,但是旧水印删除不掉。 以为上传新水印图片会替换掉旧水印,结果显示了2个水印,要怎么删除呢? 如下截图所示,双击打开页…

如何在CentOS上解决Python版本冲突和路径问题

在使用CentOS等Linux系统时,安装多个Python版本可能会导致版本冲突和路径问题。当你运行python3命令时,系统可能不会调用你期望的Python版本,这可能会导致运行错误或者其他依赖问题。下面是一篇详细的博客,介绍如何解决这种Python…

微信小程序发布,推广等步骤

发布小程序 一.首先写好小程序后在微信开发者工具的右上角找到上传并点击 2.填写本次开发版本的版本号和备注信息,点击上传 3.登录微信小程序管理后台 微信公众平台 在管理处找到版本管理 4.在版本管理页面可以看到刚刚提交的小程序已经上传到这里,点击…

如何在两台电脑之间共享文件(超详细步骤)

所需物品: 两台以上电脑一个路由器 步骤1: 将两台电脑用网线或无线网连接至同一路由器下 只有在同一路由器下才能形成局域网,从而才能正常共享文件。例如通常打印机和电脑也需要保持在同一路由器下才能正常打印文件。 步骤2:设置…

【全开源】Java洗衣清洁服务同城清洗服务小程序源码

特色功能: 在线预约与支付:用户可以通过洗衣小程序在线预约洗衣服务,并选择支付方式进行支付,如微信支付、支付宝等。这种在线预约和支付的方式极大地方便了用户,提高了服务的便捷性。智能推荐与选择:根据…

Web 安全基础理论

Web 安全基础理论 培训、环境、资料、考证 公众号:Geek极安云科 网络安全群:624032112 网络系统管理群:223627079 网络建设与运维群:870959784 移动应用开发群:548238632 短视频制作群: 744125867极安云…

python编程“常识”【pip安装路径、计算、pycharm中的terminal运行前面的PS修改成自己环境】

一、默认的pip install包路径: pip show pip 二、计算 打开cmd,输入: ipython 例如你要计算2的13次方: ok. 三、pycharm中的terminal运行前面的PS修改成自己环境 未修改前: 修改过程: 打开设置找到too…

安卓模拟器访问主机局域网

误打误撞能够访问主机局域网了 但是不太懂是因为哪一部分成功的 先记录一下 PC:mac系统 安卓编译器:Android Studio 步骤 只需要在PC上进行设置 1. 在【设置】中,打开已连接的Wi-Fi的【详细信息】 2. TCP/IP --> 配置IPv6,修…

STM32--4G DTU 及 阿里云

模块概述 ATK-IDM750C/IDM751C 是正点原子(ALIENTEK)团队开发的一款高性能 4G Cat1 DTU 产品, 支持移动 4G、联通 4G 和电信 4G 手机卡。它以高速率、低延迟和无线数传作为核心功能, 可快速解决应用场景下的无线数传方案。 它支持 TCP/UDP/HTTP/MQTT/DN…

电脑windows系统压缩解压软件-Bandizip

一、软件功能 Bandizip是一款功能强大的压缩和解压缩软件,具有快速拖放、高速压缩、多核心支持以及广泛的文件格式支持等特点。 Bandizip软件的功能主要包括: 1. 支持多种文件格式 Bandizip可以处理多种压缩文件格式,包括ZIP, 7Z, RAR, A…

2024-05-09 Ubuntu上面用ffmpeg把jpeg图像转成yuv、rgb格式文件,通过ffplay命令显示这些文件成图像

一、安装 FFmpeg: 如果你的Ubuntu系统中没有安装 FFmpeg,可以通过以下命令来安装: sudo apt update sudo apt install ffmpeg 二、测试原图,cowboy_girl_1024X1280.jpeg,分辨率是1024X1280. 三、使用 ffmpeg -pix_fmts 命令查看ffmpeg支持的格式 ffmpeg -pix_fmts 四、使…

如何预防最新的Mallox变种rmallox勒索病毒感染您的计算机?

导言: 在数字化浪潮中,网络安全如履薄冰。新兴的.rmallox勒索病毒,以其独特的攻击方式和狡猾的战术,给全球网络安全带来了前所未有的挑战。本文将深入剖析.rmallox勒索病毒的战术,并提出一系列创新的防御策略&#xf…

[uniapp 地图组件] 小坑:translateMarker的回调函数,会调用2次

大概率是因为旋转和移动是两个动画,动画结束后都会分别调用此函数 即使你配置了 【不旋转】它还是会调用两次, 所以此处应该是官方的bug

【Python】什么是皮尔森系数

我不完美的梦 你陪着我想 不完美的勇气 你说更勇敢 不完美的泪 你笑着擦干 不完美的歌 你都会唱 我不完美心事 你全放在心上 这不完美的我 你总当做宝贝 你给我的爱也许不完美 但却最美 🎵 周冬雨《不完美女孩》 皮尔森相关系数(Pe…