首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python教学——第十天

很多时候不管是公司还是个人,有一个头疼的问题,那就是文件放来放去,会有很多地方有重复性的文件,但是光凭肉眼根本无法分辨文件是否是重复的。但是Python可以帮你找出来哪些文件是重复的。

没错,就是通过文件的hash值来判断文件是否重复,今天的示例就是通过文件的MD5码来判断文件是否重复。

题外话,虽然MD5已经被证明为不安全的hash,但是我想你个人也好,公司也好,暂时没有去hack一个文件的hash值来假冒一个文件,当然你也可以今天的示例去计算一个文件sha1,sha256等hash值来判断文件的唯一性,上干货

这个干货需要两个主要的库,os跟hashlib

os用来遍历子目录,hashlib当然是用来计算hash值的

其中md5_file(name) 这个集数通过传入文件名name来让后面的hashlib来读取计算hash值

listyoudir函数用来遍历目录里的文件并调用md5_file来计算

注意:计算文件的hash值的速率跟你的硬盘速度,文件大小有着密切的关系。比如文件1GB大小,计算一个文件的hash需要读取完整的1GB数据才能计算的出来,因此文件越小,速度越快

举个例子,这个文件夹里的2个文件我是通过复制粘贴出来2个一模一样的文件,并更改了其实任何一个文件文件名,其它均未做修改

可以看到文件的hash值完全一样

但是如果我重新新建一个3.txt并且把内容写成444443,我们来看下效果

通过这样来判断文件是否重复的最大好处就是,只要文件内容是一模一样的,不管你怎么命名这个文件,值就肯定一样(通过hack更改除非),我只说正常情况下。

那么如果你想判断整个D盘,跑出结果来就可以很方便的知道哪2个文件是重复的。当然如果你觉得数据量太大,要分析,也可以把数据写入一张表格或者一个数据库里,为今后的分析做准备。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180113G0OIH100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券