脚本宝典收集整理的这篇文章主要介绍了

Python 查找重复文件升级版 – photodup

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。

之前写了一个简化版的使用Python查找目录中的重复文件,现在升级了一下,我们来提供一个友好的网页界面。

思路

上一个版本我们非常简单粗暴地将所有文件的hash扫描后保存到一个字典中,字典结构大概是这样的:

files = [{'hash1':['file/path...','file/path...']},
         {'hash2':['file/path...','file/path...','file/path...']},
         {'hash3':['file/path...']}]

然后通过一个循环找出hash值对应的数组长度大于1的数组,现在我们把这个扫描结果保存到数据库中,之后只要查询数据库即可找到重复的文件。

步骤

我们大致需要几个步骤就可以让程序跑起来:

git clone https://github.com/tobyqin/photodup.git # 克隆代码

cd photodup
pip install -r requirements.txt # 安装必要的依赖包

python db.py # 创建DB表结构

表结构不需要太复杂:

id hash name path Existed
1 ab3d DCS_001.JPG path/to/DSC_001.JPG 1
2 1d2c DCS_002.JPG path/to/DSC_002.JPG 2

然后开始扫描你要检查的目录。

python scan.py dir1 dir2

你可以传入一个或者多个目录,默认只检索jpg文件,也可以修改config.py里的配置项来自定义。扫描结束后,启动web服务即可。

python web.py

顺利的话用浏览器打开 http://127.0.0.1:5001 就可以看到一个友好的网页,可以通过文件hash或者文件名来清理重复文件,可以预览图片文件。

dup_by_hash

dup_by_name

原理&总结

升级后的重复文件清理工具总共也不过两三百行代码,但是已经算是一个比较完整的程序,使用起来也方便了很多。升级过程中用到了前后端数据库各方面的知识,不管你的想法多简单,真正动手去实现才会有收获。

关于作者:

Toby Qin, Python 技术爱好者,目前从事测试开发相关工作,转载请注明原文出处。

欢迎关注我的博客 https://betacat.online,你可以到我的公众号中去当吃瓜群众。

Betacat.online

总结

以上是脚本宝典为你收集整理的

Python 查找重复文件升级版 – photodup

全部内容,希望文章能够帮你解决

Python 查找重复文件升级版 – photodup

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过