如何用python代码检索电脑重复度高的文件

一、案例

      当电脑中重复文件过多,各种聊天软件中获取的各种重复文件,又都自动下载在电脑中,不断占用电脑内存,同时又不容易通过每个关键字来搜索重复文件,删除重复文件以减小内存的情况。

     可以通过获取文件的哈希值进行对比查找重复文件,并展示哈希值以及重复文件路径,只需要按照搜索的目录来进行检索,通过计算的哈希值,可快速查找到文件名重复度很高的文件,并将其文件路径进行归类展示,便于后续的删除等操作,具体代码如下:

import os
import hashlib
from collections import defaultdict
from typing import List, Dict, Any, Tuple

def get_file_hash(file_path: str, block_size: int = 65536) -> str:
    """获取文件的哈希值"""
    hasher = hashlib.sha256()
    with open(file_path, 'rb') as file:
        while True:
            data = file.read(block_size)
            if not data:
                break
            hasher.update(data)
    return hasher.hexdigest()

def find_duplicate_files(starting_directory: str) -> List[Tuple[str, List[str]]]:
    """查找重复文件"""
    file_hashes: Dict[str, List[str]] = defaultdict(list)

    for root, _, files in os.walk(starting_directory):
        for file_name in files:
            file_path = os.path.join(root, file_name)
            try:
     

最近更新

  1. TCP协议是安全的吗?

    2024-03-30 21:10:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-30 21:10:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-30 21:10:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-30 21:10:02       20 阅读

热门阅读

  1. 简单理解session和cookie

    2024-03-30 21:10:02       15 阅读
  2. mybatis-plus

    2024-03-30 21:10:02       16 阅读
  3. 服务器硬件基础知识

    2024-03-30 21:10:02       15 阅读
  4. 还原二叉树

    2024-03-30 21:10:02       17 阅读
  5. Python基础入门 --- 8.文件

    2024-03-30 21:10:02       18 阅读
  6. Redisson 实现分布式锁

    2024-03-30 21:10:02       22 阅读
  7. 浅谈Spring中的JoinPoint MethodSignature Signature

    2024-03-30 21:10:02       17 阅读
  8. Markdown渲染器csp

    2024-03-30 21:10:02       18 阅读
  9. day2链表

    2024-03-30 21:10:02       14 阅读
  10. 每日一题 --- 两数之和[力扣][Go]

    2024-03-30 21:10:02       26 阅读
  11. 解释Python中的可变类型和不可变类型

    2024-03-30 21:10:02       18 阅读
  12. 栈,队列,堆,树

    2024-03-30 21:10:02       18 阅读
  13. 测试开发岗 - 常见面试题(一)

    2024-03-30 21:10:02       19 阅读