python怎么实现MD5进行文件去重
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要介绍"python怎么实现MD5进行文件去重",在日常操作中,相信很多人在python怎么实现MD5进行文件去重问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年01月23日python怎么实现MD5进行文件去重
这篇文章主要介绍"python怎么实现MD5进行文件去重",在日常操作中,相信很多人在python怎么实现MD5进行文件去重问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"python怎么实现MD5进行文件去重"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
工作原理
脚本会检查你给出的文件路径下的所有文件,然后计算每个文件的MD5值,并将其加入到一个列表中。
如果某文件的MD5值不在列表中,就认定其是我们需要的文件,脚本会在桌面新建一个名为"去重结果"的文件夹,并将其复制到里面去。
如果某文件的MD5值在列表中,就认定其不是我们需要的文件,不对其做任何处理。
代码可以直接运行,无需做任何修改(除了安装可能缺少的库文件)
代码
import osimport shutilimport hashlib# 对文件去重# 计算每个文件的md5值,据此进行去重def only_one(test_path): md5_list = [] count = 0 for current_folder, list_folders, files in os.walk(test_path): for file in files: file_path = current_folder + '\\' + file # 获取每个文件的路径 f = open(file_path, 'rb') # 开始计算每个文件的md5值 md5obj = hashlib.md5() md5obj.update(f.read()) get_hash = md5obj.hexdigest() f.close() md5_value = str(get_hash).upper() # 开始去重 if md5_value in md5_list: # 如果这个文件的md5值曾经出现过,就不对它做任何处理 count += 1 print('\033[31m[-] 发现重复文件:\033[0m' + str(file)) else: md5_list.append(md5_value) # 如果这个文件的md5值不存在列表中,就添加进列表中 shutil.copy(file_path, path2) print('\033[31m[-] 共发现重复文件:{}个\033[0m'.format(count))if __name__ == '__main__': print('\033[4;33m[+] 此脚本会检查指定路径下的所有文件,通过计算文件的MD5值进行去重\033[0m') print('\033[4;33m[+] 去重后的文件会复制到桌面新文件夹中,源文件不会丢失\033[0m') path = input('\033[34m[+] 请输入文件夹地址:\033[0m') os.chdir(path) # path2 用来存放所有的去重结果 desktop_path = os.path.join(os.path.expanduser("~"), 'Desktop') # 获取桌面路径 path2 = os.path.join(desktop_path, '去重结果') os.makedirs(path2) only_one(path) print('\033[32m[-] 现有非重复文件共计:{}个\033[0m'.format(len(os.listdir(path2))))
到此,关于"python怎么实现MD5进行文件去重"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
文件
路径
学习
文件夹
桌面
结果
脚本
不对
代码
更多
并将
帮助
检查
实用
接下来
原理
地址
库文件
据此
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
马奇 360网络安全 德国
为了提高网络安全我认为英语翻译
带网络安全模式下重装系统
数据库实验7 触发器答案
河北电商软件开发机构
云数据库怎么修改
维普经纶数据库试用通知
网络安全因素主要有哪些
第七大道网络技术有限公司
网络显示连接不了服务器
计算机网络技术工作条件
中国网络安全行业2022
方舟联机服务器区分
网络安全等级保护 标准
互联网行业网络安全试点示范
imei 数据库
关于网络安全宣传的电影
数据库删除数据找回
计算机等级网络技术四级
杨浦区市场软件开发诚信合作
数据库运维合同模板
五大数据库建设现状分析
苏州新宇软件开发公司.
上传数据库时乱码
mysql基本数据库
郑州数据库培训
数据库审核功能如何实现
学习通连接服务器
转行到软件开发行业
服务器融合计算是什么