python删除本地夹里重复文件的方法

yizhihongxing

当我们在日常的工作中,特别是处理大量文件的时候,经常会出现本地文件夹里有大量重复的文件。如何在Python中快速的删除这些重复文件呢?本文将介绍利用Python删除本地夹里重复文件的方法。

步骤

  1. 遍历文件夹:利用Python的os模块,遍历文件夹中的所有文件,得到每个文件的路径及其文件名。

  2. 计算文件哈希值:对于每个文件,计算它的哈希值。如果两个文件的哈希值相同,则可以认为它们是两个相同的文件。

  3. 删除重复文件:当发现某两个文件哈希值相同时,就将其中一个文件删除即可。

代码示例:

以下代码示例是基于Windows操作系统的示例,计算文件哈希值使用了Python的hashlib库,删除文件使用了os模块的remove函数。

import os
import hashlib

def get_md5(filename, chunk_size=4096):
    '''
    计算文件的MD5值
    '''
    with open(filename, 'rb') as f:
        md5 = hashlib.md5()
        while True:
            chunk = f.read(chunk_size)
            if not chunk:
                break
            md5.update(chunk)
        return md5.hexdigest()

def remove_duplicate_files(folder):
    '''
    删除指定文件夹中的重复文件
    '''
    unique_files = {} # 存储文件哈希值和路径的字典
    for root, dirs, files in os.walk(folder):
        for filename in files:
            path = os.path.join(root, filename)
            md5 = get_md5(path)
            if md5 in unique_files:
                # 如果文件哈希值存在,则说明是重复文件,删除之
                print('Removing duplicate file:', path)
                os.remove(path)
            else:
                # 如果文件哈希值不存在,则将其加入unique_files字典
                unique_files[md5] = path

# 删除指定文件夹中的重复文件
remove_duplicate_files(r'C:\Users\Administrator\Downloads')

在上述代码中,我们通过遍历指定文件夹中的所有文件,并计算每个文件的哈希值。对于哈希值相同的文件,我们利用remove函数将其中一个文件删除。

另外一个示例是使用Python的set进行判断,利用os模块的remove函数进行删除:

import os

def remove_duplicate_files(folder):
    '''
    删除指定文件夹中的重复文件
    '''
    files = set() # 存储文件名和大小的字典
    for root, dirs, filenames in os.walk(folder):
        for filename in filenames:
            path = os.path.join(root, filename)
            size = os.path.getsize(path)
            file_info = (filename, size)
            if file_info in files:
                # 如果文件名和大小都相同,则说明是重复文件,删除之
                print('Removing duplicate file:', path)
                os.remove(path)
            else:
                # 如果文件名和大小不同,则将其加入files集合
                files.add(file_info)

# 删除指定文件夹中的重复文件
remove_duplicate_files(r'C:\Users\Administrator\Downloads')

总结

以上两个示例给出了两种不同的方式实现Python删除本地夹里重复文件的方法。通过遍历文件夹,计算文件的哈希值或者利用集合来判断文件名和大小是否相同,可以快速删除本地文件夹中的重复文件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python删除本地夹里重复文件的方法 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python 合并拼接字符串的方法

    下面是关于Python合并拼接字符串的方法的完整攻略。 标准字符串拼接 Python中可以使用 + 运算符将两个字符串进行拼接,例如: str1 = "hello" str2 = "world" result = str1 + " " + str2 print(result) # 输出 "…

    python 2023年5月14日
    00
  • 两行Python代码实现pdf转word功能

    以下是详细讲解“两行Python代码实现pdf转word功能”的完整攻略。 1. 安装 pytesseract 和 pypdf2 模块 使用 pip 指令安装 pytesseract 和 pypdf2 模块,前者用于 OCR 图像文字识别,后者用于读取 PDF 文件内容,指令如下: pip install pytesseract pypdf2 2. 编写 P…

    python 2023年6月5日
    00
  • Python中的类与类型示例详解

    以下是关于“Python中的类与类型示例详解”的完整攻略: 问题描述 在 Python 中,类是一种重要概念,可以用来创建对象。本文将介绍 Python 中的类和类型,并提供例说明。 解决方法 1. 类和对象 在 Python 中,类是一种用户自定义的数据类型,用于创建对象。类定义包括类名、属性和方法。示例代码如下: class: def __init__(…

    python 2023年5月13日
    00
  • Python2和Python3中urllib库中urlencode的使用注意事项

    Python 2 和 Python 3 版本中 urllib 库的 urlencode 函数用于将字典或参数列表转换为 URL 编码的数据。但是在 Python 2 和 Python 3 中使用的方法略有不同。 Python 2 基本使用 在 Python 2 中使用 urlencode 函数需要先导入 urllib 模块。urlencode 函数接受一个字…

    python 2023年5月31日
    00
  • Python HTTP库 requests 的简单使用详情

    以下是关于Python HTTP库requests的简单使用详情的攻略: Python HTTP库requests的简单使用详情 requests是一个流行的HTTP库,用于向Web服务器发送HTTP请求和接响应。以下是Python HTTP库requests的简单使用详情的攻略: 发送GET请求 以下是使用requests库发送GET请求的示例: impo…

    python 2023年5月14日
    00
  • Go语言程序开发gRPC服务

    Go语言程序开发gRPC服务的完整攻略 什么是gRPC gRPC是一种高性能、通用的开源RPC框架,其目标是将客户端和服务端应用程序连接在一起,使得在任何地方、任何语言中都可以轻松地基于标准化的协议通信。可以轻松的进行快速的开发和强大的服务的构建,以提供跨平台和跨系统的功能调用,可以使得开发人员更轻松地创建分布式应用程序。 gRPC的工作原理 gRPC使用G…

    python 2023年5月13日
    00
  • python 基于opencv 实现一个鼠标绘图小程序

    下面我将为您详细讲解“python基于opencv实现一个鼠标绘图小程序”的完整攻略。 简介 本文介绍如何使用Python和OpenCV库来实现一个简单的鼠标绘图小程序。主要包含以下步骤: 创建窗口 绑定鼠标事件 绘制图形 退出程序 创建窗口 首先需要导入OpenCV库并创建一个窗口。可以使用cv2.namedWindow()函数来创建一个窗口,并指定窗口的…

    python 2023年5月19日
    00
  • 如何利用python 读取配置文件

    当我们开发一个程序时,通常需要读取外部的配置文件来配置一些程序的参数或者选项,这时就需要利用Python来读取配置文件。下面我来详细讲解如何利用Python读取配置文件的完整攻略。 第一步:导入模块 首先需要导入Python内置的configparser模块,用于读取配置文件。 import configparser 第二步:创建ConfigParser对象…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部