基于Python制作一个文件去重小工具
前言
常常在下载网络素材时有很多的重复文件乱七八糟的,于是想实现一个去重的操作。
主要实现思路就是遍历出某个文件夹包括其子文件夹下面的所有文件,最后,将所有文件通过md5函数的对比筛选出来,最后将重复的文件移除。
实现步骤
用到的第三方库都比较的常见,其中只有hashlib是用来对比文件的不是很常见。其他的都是一些比较常见的第三方库用来做辅助操作。
日志的设置基本都是这一套的范式,按照规则设置好日志打印的相关信息。
文件去重的实现逻辑代码块如下:
以上就是文件去重的整个实现过程,用来做一个清理电脑文件的小工具还是比较实用的。
补充
本文中主要是利用hashlib.md5()函数实现的,下面小编为大家重点介绍一下hashlib.md5()
python的hashlib提供了常见的摘要算法,如md5,sha1等等。
什么是摘要算法呢?
摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 举个例子,你写了一篇文章,内容是一个字符串'how to use python hashlib - by michael',并附上这篇文章的摘要是'2d73d4f15c0db7f5ecb321b6a65e5d6d'。如果有人篡改了你的文章,并发表为'how to use python hashlib - by bob',你可以一下子指出bob篡改了你的文章,因为根据'how to use python hashlib - by bob'计算出的摘要不同于原始文章的摘要。
可见,摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过。
摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但通过digest反推data却非常困难。而且,对原始数据做一个bit的修改,都会导致计算出的摘要完全不同。
当然,hashlib.md5()除了可以用来给文件去重,还能做到密码加密,下面是示例代码
到此这篇关于基于python制作一个文件去重小工具的文章就介绍到这了,更多相关python文件去重内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!