搜索多个目录,删除重复文件

时间:2012-06-06 19:03:55

标签: python duplicate-removal

我有一个包含记录文件的文件目录。我只是访问了一个具有相同记录但也包含其他文件的新目录,但是其他文件深埋在其他文件夹中,我无法找到它们。 所以我的解决方案是运行一个python程序并删除所有在两个不同目录(和子目录)中重复的文件,并保留其他文件完整,这将为我提供我正在寻找的“新文件”。

我看过几个找到重复的程序,但我不确定它们是如何运行的,而且它们没有帮助。

任何方式我都可以完成我正在寻找的东西? 谢谢!

3 个答案:

答案 0 :(得分:1)

可能的方法:

  1. 从原始文件夹中创建一组MD5哈希值。
  2. 以递归方式MD5对新文件夹中的文件进行哈希处理,删除生成已存在于集合中的哈希值的所有文件。
  3. 上面的警告是,有两个不同的文件有可能生成相同的哈希。文件有多大不同?

答案 1 :(得分:1)

使用fslint或类似的软件。例如,Fslint可以为您提供不同文件的列表,并将副本硬链接在一起,或删除重复项。如果内部结构相同,一种选择也就是使用类似diff的程序来区分目录。

答案 2 :(得分:0)

他们是否重复两个目录中的文件具有相同的名称/路径?如果我理解正确,你想找到重复的文件名而不是文件内容?如果是这样,对两棵树中的os.walk进行“同步”调用可能会有所帮助。