文章目录
-
总结
前言
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分钟.