资讯专栏INFORMATION COLUMN

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

bingo / 3160人阅读

摘要:之前写了一个简化版的使用查找目录中的重复文件,现在升级了一下,我们来提供一个友好的网页界面。扫描结束后,启动服务即可。顺利的话用浏览器打开就可以看到一个友好的网页,可以通过文件或者文件名来清理重复文件,可以预览图片文件。

之前写了一个简化版的使用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或者文件名来清理重复文件,可以预览图片文件。

原理&总结

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

项目地址:https://github.com/tobyqin/ph...

技术栈:Python, SQL, Flask, Bootstrap, Jquery, CSS.

关于作者:

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41715.html

相关文章

  • 使用Python查找目录中的重复文件

    摘要:处理重复文件最后一步非常简单,把上一步建立的字典做一个简单的过滤就能找到重复文件。 是这样的,电脑上的堆积的照片有点多,而且重复的照片被放在了不同的目录,占用的空间越来越大,数量也多得已经不太适合人工分辨整理,写个Python脚本来处理吧。 文件的唯一标识 - MD5 假如你要处理的重复文件有不同的文件名,最简单的办法就是通过MD5来确定两个文件是不是一样的。 def md5sum(f...

    melody_lql 评论0 收藏0
  • 当用户管理系统遇上python和mongodb后……

    摘要:安装基本是一路下一步,需要注意的地方小胖网上找了几张图来说明。这里可以自定选择需要安装的东西小胖选择完全安装,随便你们选择安装路径但是需要注意不要选择一个叫的东西,否则可能要很长时间都一直在执行安装,是一个图形界面管理工具。 Overview: 环境 前言 效果图 mongdb安装 代码涉及知识点 关于windows的cmd下执行python文件显示中文乱码的问题 总结 0.环境 ...

    keithyau 评论0 收藏0
  • Flask之扩展flask-migrate

    摘要:一个用来做数据迁移的扩展,一般都是结合使用,在上一篇文章中我也介绍了这个扩展,需要的小伙伴可以看一下,后续我会将更深层的写出来。 flask-migrate一个用来做数据迁移的falsk扩展,一般都是结合flask-sqlalchemy使用,在上一篇文章中我也介绍了这个扩展,需要的小伙伴可以看一下,后续我会将flask-sqlalchemy更深层的写出来。【config.py】 SQL...

    Snailclimb 评论0 收藏0
  • python -查找重复邮箱,保留没重复过的值

    摘要:用读文件个邮件列表去重后,不包含的数据这次是要读取两个的文件,然后查看表中的邮箱不在中的邮箱,然后将结果另存为知识点读,没有列标题,命名标题合并两个,然后找不同。在的话,要先选择最后一列为的值。 用pd读excel文件--2个邮件列表去重后,不包含的数据 这次是要读取两个excel的文件,然后查看tiany表中的邮箱不在spam中的邮箱,然后将结果另存为email_result.xls...

    AlphaGooo 评论0 收藏0
  • sublime配置及使用技巧

    摘要:第三步,安装插件安装方法一快捷键,输入回车,然后输入你想安装的包的名称,回车安装方法二当然你也可以打开文件夹,然后去等平台下相关插件放在这里即可。 如果需要 vim 配置,可以移步 面向 web 前端及 node 开发人员的 vim 配置 sublime 3 配置和使用技巧 第一步,设置settings 一下是我个人喜欢的格式配置,在perferences -> settings { ...

    LoftySoul 评论0 收藏0

发表评论

0条评论

bingo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<