• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

hashlibmd5函数来筛选出系统重复文件并移除

python 搞代码 3年前 (2022-03-09) 43次浏览 已收录 0个评论

经常在下载网络素材时有很多的反复文件乌七八糟的,于是想实现一个去重的操作。

【浏览全文】

次要实现思路就是遍历出某个文件夹包含其子文件夹上面的所有文件,最初,将所有文件通过MD5函数的比照筛选进去,最初将反复的文件移除。

用到的第三方库都比拟的常见,其中只有hashlib是用来比照文件的不是很常见。其余的都是一些比拟常见的第三方库用来做辅助操作。

import os  # 利用文件操作
import hashlib  # 文件比照操作
import logging  # 日志函数操作
import sys  # 零碎利用操作

日志的设置根本都是这一套的范式,依照规定设置好日志打印的相干信息。

logger = logging.getLogger('系统文件去重')
logging.basicConfig(format='%(asctime)s %(levelname)-8s: %(message)s')
logger.setLevel(logging.DEBUG)

文件去重的实现逻辑代码块如下:

<code class="pyhon">diretory = input('请输出须要整顿的文件目录: \n')  # 去重的文件夹门路

if os.path.isdir(diretory):
    logger.info('当前目录[' + diretory + ']校验胜利!')
    md5s = []
    for file_path, dir_names, file_names in os.walk(r'' + diretory):
        for file_name in file_names:
            try:
                file_name_path = os.path.join(file_path, file_name)
                logger.info('以后比对门路: '+ file_name_path)
                md5 = hashlib.md5()
                file = open(file_name_path, "rb")
                md5.update(file.read())
                file.close()
                md5_value = md5.hexdigest()
                if md5_value in md5s:
                    os.remove(file_name_path)
                    logger.info('[' + file_name_path + ']呈现反复曾经移除!')
                else:
                    md5s.append(md5_value)
            except:
                logger.error('[' + file_name_path + ']比照产生异样,执行下一个!')

else:
    logger.error('输出的文件夹或者目录不存在!')</code>

以上就是文件去重的整个实现过程,用来做一个清理电脑文件的小工具还是比拟实用的。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:hashlibmd5函数来筛选出系统重复文件并移除

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址