我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python如何实现MD5进行文件去重

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python如何实现MD5进行文件去重

本篇内容主要讲解“python如何实现MD5进行文件去重”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python如何实现MD5进行文件去重”吧!

目录
  • 前言

  • 工作原理

  • 代码

前言

工作中偶尔会遇到文件去重的事情,收到一大堆文件,名称各不相同,分析文件的时候发现有不少重复的文件,导致工作效率低下,那么,这里就写了一个python脚本实现文件去重功能

工作原理

脚本会检查你给出的文件路径下的所有文件,然后计算每个文件的MD5值,并将其加入到一个列表中。

  • 如果某文件的MD5值不在列表中,就认定其是我们需要的文件,脚本会在桌面新建一个名为“去重结果”的文件夹,并将其复制到里面去。

  • 如果某文件的MD5值在列表中,就认定其不是我们需要的文件,不对其做任何处理。

  • 代码可以直接运行,无需做任何修改(除了安装可能缺少的库文件)

代码

import osimport shutilimport hashlib# 对文件去重# 计算每个文件的md5值,据此进行去重def only_one(test_path):    md5_list = []    count = 0    for current_folder, list_folders, files in os.walk(test_path):        for file in files:            file_path = current_folder + '\\' + file  # 获取每个文件的路径            f = open(file_path, 'rb')  # 开始计算每个文件的md5值            md5obj = hashlib.md5()            md5obj.update(f.read())            get_hash = md5obj.hexdigest()            f.close()            md5_value = str(get_hash).upper()            # 开始去重            if md5_value in md5_list:  # 如果这个文件的md5值曾经出现过,就不对它做任何处理                count += 1                print('\033[31m[-] 发现重复文件:\033[0m' + str(file))            else:                md5_list.append(md5_value)  # 如果这个文件的md5值不存在列表中,就添加进列表中                shutil.copy(file_path, path2)    print('\033[31m[-] 共发现重复文件:{}个\033[0m'.format(count))if __name__ == '__main__':    print('\033[4;33m[+] 此脚本会检查指定路径下的所有文件,通过计算文件的MD5值进行去重\033[0m')    print('\033[4;33m[+] 去重后的文件会复制到桌面新文件夹中,源文件不会丢失\033[0m')    path = input('\033[34m[+] 请输入文件夹地址:\033[0m')    os.chdir(path)    # path2 用来存放所有的去重结果    desktop_path = os.path.join(os.path.expanduser("~"), 'Desktop')  # 获取桌面路径    path2 = os.path.join(desktop_path, '去重结果')    os.makedirs(path2)    only_one(path)    print('\033[32m[-] 现有非重复文件共计:{}个\033[0m'.format(len(os.listdir(path2))))

python如何实现MD5进行文件去重

到此,相信大家对“python如何实现MD5进行文件去重”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python如何实现MD5进行文件去重

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python如何实现MD5进行文件去重

本篇内容主要讲解“python如何实现MD5进行文件去重”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python如何实现MD5进行文件去重”吧!目录前言工作原理代码前言工作中偶尔会遇到文件去重
2023-06-20

python实现MD5进行文件去重的示例代码

目录前言工作原理代码前言 工作中偶尔会遇到文件去重的事情,收到一大堆文件,名称各不相同,分析文件的时候发现有不少重复的文件,导致工作效率低下,那么,这里就写了一个python脚本实现文件去重功能 工作原理 脚本会检查你给出的文件路径下的所有
2022-06-02

如何实现Python文件去重

这篇文章将为大家详细讲解有关如何实现Python文件去重,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码ing导出的文件都是保存在同一文件夹下的,格式也相同。然后,上网查了下 filecmp.cmp()
2023-06-20

JAVA 如何实现大文本去除重复行

这期内容当中小编将会给大家带来有关JAVA 如何实现大文本去除重复行,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。去重复行,用SQL写很简单,就一句SELECT DISTINCT … FROM。但是文件上
2023-06-03

Linux命令行实现文件去重处理

在 Linux 命令行中,可以使用 uniq 命令来去除文件中的重复行假设你有一个名为 input.txt 的文件,内容如下:applebananaappleorangebanana要使用 uniq 命令去除重复行,你可以将输出
Linux命令行实现文件去重处理
2024-09-24

Python怎么实现文件自动去重

这篇文章主要介绍Python怎么实现文件自动去重,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Python 文件自动去重平日里一来无聊,二来手巧,果然下载了好多无(luan)比(qi)珍(ba)贵(zao)的资料,搞
2023-06-15

Python做文本按行去重的实现方法

文本: 每行在promotion后面包含一些数字,如果这些数字是相同的,则认为是相同的行,对于相同的行,只保留一行。 思路: 根据字典和字符串切割。 建立一个空字典。 读入文本,并对每行切割前半部分,在读入文本的过程中循环在这个字典中查找,
2022-06-04

如何进行Python文件的操作

本篇内容主要讲解“如何进行Python文件的操作”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何进行Python文件的操作”吧!1. 文件的读写原理:文件的读写称为I/O操作。操作原理:.py
2023-06-14

Python文件处理该如何进行

Python文件处理该如何进行,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python 文件处理很简单,使用内置的文件类.打开一个文件#open返回一个文件类 infile
2023-06-04

批处理如何实现根据文件内容进行重命名操作

这篇文章将为大家详细讲解有关批处理如何实现根据文件内容进行重命名操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我想实现以下的目的: 首先,我有个.dat文件,名字是固定的,需要更改这个文件名. .da
2023-06-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录