使用md5对文件去重
在大量文件中,有时会存在名称不同,但是内容却相同的文件,此时单单凭文件名是没办法区分开的,所以可以尝试,对文件内容进行md5加密,每个文件,只要其内容完全相同,生成的md5值是一样的,但是要保证文件的编码格式一致。得到md5值之后,以唯一的md5值进行文件命名,重新保存,此时则可以保证内容相同的文件有完全相同的文件名。下面是python实现的一种方式:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import hashlib
import os
import timepath = "../data/excel/0712_test.xlsx"
save_dir = '../data/md5_dir/'def save_file_md5(file_obj, save_dir):file_obj_tmp = file_obj.read()name_sufix = 'xlsx'hash_md5 = hashlib.md5()hash_md5.update(unicode(file_obj_tmp, errors='ignore'))md5_code = hash_md5.hexdigest()md5_name = md5_code + '.' + name_sufixtime_stamp = time.localtime(int(time.time()))time_today = time.strftime("%Y-%m-%d", time_stamp)final_dir_path = save_dir + time_todayif not os.path.exists(final_dir_path):os.makedirs(final_dir_path)save_name = os.path.join(final_dir_path, md5_name)with open(save_name, 'wb') as f:f.write(file_obj_tmp)print md5_codereturn md5_codeif __name__ == '__main__':save_file_md5(open(path, 'rb'), save_dir)
上面代码实现的功能就是以唯一的md5值+原始文件后缀名对文件重新命名,并按照日期将新文件保存到文件夹中。
使用md5对文件去重相关推荐
- 使用md5来实现文件去重
可以使用MD5算法来实现文件去重,因为它可以接受任意大小的数据并输出固定长度的哈希值.所以两个不一样的文件一般情况下使用MD5计算出来的hash值是不可能会相等的. 所以一旦两个文件计算出来的hash ...
- python对文件夹内文件去重
昨天无聊写了一个百度图片爬虫,测试了一下搜索"斗图".一下给我下了3000多个图片,关键是有一半以上重复的.what a fuck program ! 好吧,今天写一个文件去重功能 ...
- python去重txt文本_Python 文件去重(转载)
原博文 2020-02-14 13:20 − Python实现的txt文件去重功能示例 更新时间:2018年07月07日 09:00:36 作者:人饭子 我要评论 这篇文章主要介绍了Python实现的 ...
- 用MD5防止文件被写入恶意代码
前几天在某软件园下载burpsuit pro,使用后捆绑软件什么的都不说了,最后经过一番排查发现软件被人家写了恶意代码,导致本人电脑被挂马而且一般的杀毒软件没有检测到(XX管家,XX安全卫士什么的), ...
- php读取文件和读取redis,PHP结合redis实现大文件去重
本篇文章主要内容是用PHP多个进程配合redis的有序集合实现大文件去重,感兴趣的朋友可以学习一下. 1.对一个大文件比如我的文件为 -rw-r--r-- 1 ubuntu ubuntu 9.1G M ...
- php redis 集合返回多条,详解PHP多个进程配合redis的有序集合实现大文件去重
1.对一个大文件比如我的文件为 -rw-r--r-- 1 ubuntu ubuntu 9.1G Mar 1 17:53 2018-12-awk-uniq.txt 2.使用split命令切割成10个小文 ...
- 使用开源的openssl的md5头文件,实现对于文件的md5代码
需要安装openssl的库 sudo apt-get install openssl sudo apt-get install libssl-dev 参考链接 代码 #include "op ...
- MD5在文件中的使用
目录 简介 Demo1(基于字符串) Demo2(基于文件) 简介 在公司的本次开发中牵涉到了一个导出导出,利用MD5保证文件没有被修改过,, 导出的文件格式如下 metis.data(文件名){ ...
- MD5验证文件是否重复
根据文件生成MD5标识串,当两个标识串一致时认为文件内容相同. 文件生成MD5 String方法如下: import java.io.File; import java.io.FileInputStr ...
- python文件去重软件_Python实现的txt文件去重功能示例
本文实例讲述了Python实现的txt文件去重功能.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python2 import shutil a=0 readD ...
最新文章
- 【URAL】1091 Tmutarakan Exams
- ClewareControl 2.4 发布,传感器控制程序,增加对 python 的支持
- python互斥锁_Python多线程如何使用互斥锁
- SQL Server-聚焦UNIOL ALL/UNION查询(二十三)
- 【性能优化】 之AWR 报告分析
- flink1.12在ubuntu下面的编译记录(转载+自己整理)
- 手把手教Electron+vue的使用
- python关于包的题怎么做_Python自定义包引入
- win7注册表无法修改计算机名称,Win7旗舰版
- http://www.blogjava.net/heyang/archive/2010/12/02/
- [debug] Expected to have finished reduction in the prior iteration before starting a new one.
- MapReduce 学习指南
- 2、使用Keras构建回归模型
- 基于Ubuntu的ESP32平台搭建
- 个人网站搭建保姆级教学:Hexo + Kaze + Gitee Pages
- AntiVir德国小红伞杀毒使用
- App移动应用测试点总结
- 色彩平衡校正色彩的原理
- ALBB 二叉树中相差最大节点的绝对差值
- javaweb报修系统源码