python 文件去重样例

文章目录


前言

python remove duplicate files via pathlib and set

一、文件去重应用场景?

当同类型文件分布于不同文件夹时且文件数量过大时(几十W),如何去重简单快捷

二、使用步骤

1.引入库

代码如下(示例):

from pathlib import Path

2.样例代码

代码如下(示例):

class FilesFilter(object):
    """
    a simple drop duplicate files case
    简单的依据文件名去重的样例代码
    """
    def __init__(self, path):
        self._seen = set()
        self._parent_path = Path(path)
        
    def remove(self):
        """
        判断文件是否在set中, 若不在则添加,若存在说明重复,删除该文件夹
        param:None
        rtype:None
        """
        for file_name in self._parent_path.rgolb("*.xxx"):#xxx为文件后缀名, eg. pdf, csv, doc, xlsx, txt...(自行修改)
            if file_name.stem not in self._seen:
                self._seen.add(file_name.stem) #根据文件名去重
            else:
                file_name.unlink() # 删除重复文件
        
if __name__ == "__main__":
    path = r"your files path here" #path为多个包含相同文件的不同文件夹的父目录
    FilesFilter(path).remove()

总结

以上就是简单地对于分布在不同文件夹的重复文件去重操作,  利用了set函数的特性以及pathlib库的相关方法。简单测试, 15W文件中去除约5W重复文件耗时约40分钟.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值