zoukankan      html  css  js  c++  java
  • 使用Python+md5删除本地重复(同一张不重名)的照片

    github博客传送门
    csdn博客传送门

    使用md5删除重复文件思路和本帖一样

    首先遍历需要去重文件夹下的所有文件

    然后生成每个文件md5码的同时 和集合中的md5码比较

    如md5码不存在,则进行保存.如存在,则不进行保存

    最后保存路径的文件 则是不重复的文件

    import hashlib
    import os
    from PIL import Image
    import numpy as np
    
    
    files_path = "这里输入你要去重的文件夹路径.."
    save_files_path = "这里输入你去重后保存文件的路径..."
    files = os.listdir(files_path)  # 遍历文件夹下的所有文件
    
    temp = set()  # 创建一个set()
    count = 0  # 删除的文件计数
    for file in files:
        file_path = files_path + file  # 获得完整的路径
        img = Image.open(file_path)  # 打开图片
        img_array = np.array(img)  # 转为数组
        md5 = hashlib.md5()  # 创建一个hash对象
        md5.update(img_array)  # 获得当前文件的md5码
        if md5.hexdigest() not in temp:  # 如果当前的md5码不在集合中
            temp.add(md5.hexdigest())  # 则添加当前md5码到集合中
            img.save(save_files_path + file)  # 并保存当前图片到保存文件的路径
        else:
            count += 1  # 否则删除图片数加一
    
    print("duplicate removal:", count)  # 最后输出删除图片的总数
    
    
    print_r('点个赞吧');
    var_dump('点个赞吧');
    NSLog(@"点个赞吧!")
    System.out.println("点个赞吧!");
    console.log("点个赞吧!");
    print("点个赞吧!");
    printf("点个赞吧!
    ");
    cout << "点个赞吧!" << endl;
    Console.WriteLine("点个赞吧!");
    fmt.Println("点个赞吧!")
    Response.Write("点个赞吧");
    alert(’点个赞吧’)
    
  • 相关阅读:
    Go反射
    Go_CSP并发模型
    Go_select
    Go计时器
    day9:vcp考试
    day8:vcp考试
    day7:vcp考试
    day6:vcp考试
    day5:vcp考试
    day4:vcp考试
  • 原文地址:https://www.cnblogs.com/Mrzhang3389/p/11093569.html
Copyright © 2011-2022 走看看