python删除某一文件夹下的重复文件
#2022-10-28
import hashlib
import os
import time
def getmd5(filename):
    """
    获取文件 md5 码
    :param filename: 文件路径
    :return: 文件 md5 码
    """
    file_txt = open(filename, 'rb').read()
    # 调用一个md5对象
    m = hashlib.md5(file_txt)
    # hexdigest()方法来获取摘要(加密结果)
    return m.hexdigest()
def main():
    # 文件夹路径
    path = input("path: ")
    # 存放文件的 md5 码
    all_md5 = {}  # 改为字典
    total_file = 0
    total_delete = 0
    # 开始时间
    start = time.time()
    # 遍历文件夹下的所有文件
    for file in os.listdir(path):
        # 文件数量加 1
        total_file += 1
        # 文件的路径
        real_path = os.path.join(path, file)
        # 判断文件是否是文件
        if os.path.isfile(real_path) == True:
            # 获取文件的md5码
            filemd5 = getmd5(real_path)
            # 如果文件 md5 已存在,则删除此文件
            if filemd5 in all_md5.keys():  # 字典的键为文件 md5 码
                total_delete += 1
                print('删除', file)
                os.remove(real_path)
                #os.remove(path +"\\" + file)
            else:
                # 如果文件 md5 不存在,则将此文件的 md5 码添加到 all_md5 字典中
                all_md5[filemd5] = ""
    # 结束时间
    end = time.time()
    time_last = end - start
    print('文件总数:', total_file)
    print('删除个数:', total_delete)
    print('耗时:', time_last, '秒')
if __name__ == '__main__':
    main()
												
											python删除某一文件夹下的重复文件的更多相关文章
- java  删除文件夹 / 删除某文件夹下的所有文件
		
import java.io.File; /*************************删除文件夹delFolder / 删除文件夹中的所有文件delAllFile *start******** ...
 - Nodejs下如何判断文件夹的存在以及删除文件夹下所有的文件
		
代码如下: var folder_exists = fs.existsSync('./cache'); if(folder_exists == true) { var dirList = fs.rea ...
 - Linux下的命令,删除文件夹下的所有文件,而不删除文件夹本身
		
Linux下的命令,删除文件夹下的所有文件,而不删除文件夹本身 rm -rf *
 - 读取某文件夹下所有excel文件 python
		
import os import pandas as pd from sklearn import linear_model path = r'D:\新数据\每日收益率' filenames = os ...
 - GreenDao 数据库:使用Raw文件夹下的数据库文件以及数据库升级
		
一.使用Raw文件夹下的数据库文件 在使用GreenDao框架时,数据库和数据表都是根据生成的框架代码来自动创建的,从生成的DaoMaster中的OpenHelper类可以看出: public sta ...
 - java读取某个文件夹下的所有文件
		
import java.io.FileNotFoundException;import java.io.IOException;import java.io.File; public class Re ...
 - 用Java实现将多级文件夹下的所有文件统一放到一个文件夹中
		
每次下了电影(男生懂得呦),每部电影都放在一个单独的文件夹里,看的时候很是不方便啊,一直重复着进入文件夹.后退,再进.再退的操作,而手动把这些电影全部复制出来又太繁琐.因此为了解决这个问题,用IO写了 ...
 - [R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。
		
解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...
 - WINDOWS批量替换不同文件夹下的相同文件
		
今天帮媳妇解决的问题,记录一下,也许以后有用 例子: N个文件夹下有同一个文件(common.php),但是,现在对common.php文件进行了大量修改. 现在想用最新的common.php替换掉所 ...
 
随机推荐
- 微信小程序创建组件的流程,以及组件 properties 和 slot
			
组件定义流程 1)为了方便管理组件文件,创建一个目录来存放组件(可省略该步骤) 组件与页面都有相同的配置,包括的文件有:wxml.wxss.js.json 四个文件. 2)编写组件 编写组件与编写页面 ...
 - linux 3.10 一个扇区异常可能引发的hung
			
最近遇到一例3.10内核的crash: [ 4109.682163] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" d ...
 - OpenCV  CMake VSCode  Windows 平台下运行配置及其解决方案
			
前言 最近在搞 计算机图形学相关的东西,有个 demo 用到了 opencv,找了 google 一圈,发现国内都没有比较好的配置和解决的办法,要不就是几年前的教程,最近正好踩坑完,其中经历了自己编译 ...
 - [CF1481D] AB Graph(构造)
			
题解 给一个 n \tt n n 个点的完全有向图, ( u , v ) \tt(u,v) (u,v) 或者 ( v , u ) \tt(v,u) (v,u) 都有一条边,前提是 u ≠ v \tt ...
 - centOS7.x修改root密码
			
方法一: 在开机的时候选中这一行(注意光标要进入虚拟机),然后按下e键 然后找到这一行(linux 16开头的)其中的ro,将其改为 rw init=sysroot/bin/sh 按ctrl+x执行 ...
 - 轻量级消息队列 Django-Q 轻度体验
			
前言 最近做的这个项目(基于Django),需要做个功能,实现定时采集车辆定位. 这让我想起来几年前那个OneCat项目,当时我用的是Celery这个很重的组件 Celery实在是太重了,后来我做公众 ...
 - 关于MicroPython mpremote工具 的一些用例,闲聊
			
关于MicroPython mpremote工具 的一些用例,闲聊 我尝试了很多不同的第三方micropython工具,有些是Windows应用程序,有些是VScode插件. 但是当我尝试过Micro ...
 - 【ACG】博主在专栏更新内容后,及时通知关注他的用户去阅读
			
 业务场景 当用户打开应用时,系统发送Push消息给用户,向用户推荐博主信息.用户关注博主后,将保存用户的订阅信息,当关注的博主更新内容时,向订阅的用户发送短信,提醒用户及时查看最新内容.从而持续增 ...
 - TFT-eSPI入门使用教程
			
一.准备资料 开发板:ESP32-S3 屏驱动是:ST7789_DRIVER 开发环境:VS Code + PlatformIO 注意:以上是我使用的环境,不一定需要和是使用的东西一样,这里主要是学习 ...
 - itoa与atoi函数
			
// 自己参考并编写的itoa与atoi函数 // 支持10进制整形,支持16进制整形,支持负数 // 20220228,修复负数字符字符串会转换成正数的bug#include <stdio.h ...