微信文件系统中存在大量的重复内容文件,我们应该如何去除掉这些大量重复文件

以下是基于Python代码实现按照文件MD5进行文件去重的示例:

 
import hashlib
import os


def get_file_md5(file_path):
    try:
        with open(file_path, 'rb') as f:
            md5 = hashlib.md5(f.read()).hexdigest()
    except:
        print(file_path)
        return None
    return md5


def remove_duplicate_files(md5_list):
    result = []
    for md5, file_path in md5_list:
        if md5 not in result:
            result.append(md5)
        else:
            print(file_path)
            os.remove(file_path)
    return result


# 示例
md5_list = []
import glob

file_path_all = glob.glob("文件夹地址")
print(len(file_path_all))
for file_path in file_path_all:
    md5 = get_file_md5(file_path)
    if md5:
        md5_list.append((md5, file_path))

unique_md5s = remove_duplicate_files(md5_list)
print(unique_md5s)
print(len(unique_md5s))

该示例中,首先定义了一个get_file_md5函数,用于获取文件的MD5值。然后定义了一个remove_duplicate_files函数,该函数接受一个MD5列表,返回一个不包含重复项的列表。该函数使用os.listdir函数获取目录中的所有文件名,然后使用get_file_md5函数获取每个文件的MD5值,并将其添加到md5_list列表中。最后,该函数返回不包含重复项的MD5列表。

在示例中,将md5_list传递给remove_duplicate_files函数,并将结果打印到控制台上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值