比较几个目录并识别唯一文件

时间:2017-10-27 15:16:17

标签: python scripting

这是识别一组dirs中唯一文件名的好方法吗?

我在python中尝试了这个,将dir结构读入dict,然后处理dict的深层副本:

for subdirs, dirs, files in os.walk(directory):
    for file in files:
        if dir not in dir_dict:
            dir_dict[dir] = []
        else:
           dir_dict[dir].append(file)

copy_dict = copy.deepcopy(dir_dict)
def delete_but_uniques(dir_dict):
    for dir_key in dir_dict:
        dir_list = dir_dict[dir_key]
        current_dir = copy_dict.pop(dir_key)
        for file_list in dir_list:
            for other_dir in current_dir:
                if file in current_dir:
                    if file in dir_list:
                        dir_list.remove(file)
    copy_dict[dir_key] = current_dir

但字典看起来不像dir,要么将所有文件加载到同一个键中,要么创建正确的键但没有值。

我想知道 a)我做错了什么 b)如果这是一个很好的方法。

编辑:

我的目录如下所示:

    dir/    
   folder_1/a.txt b.txt c.txt    
   folder_2/b.txt c.txt d.txt e.txt f.txt    
   folder_3/b.txt c.txt e.txt g.txt    
   ...    
   folder_n/

我希望删除所有目录中的所有非独特内容,以便我拥有:

    dir/    
   folder_1/a.txt    
   folder_2/d.txt f.txt    
   folder_3/g.txt    
   ...
   folder_n/

我对任何建议解决此问题的语言或方法持开放态度。

编辑2:

我用fdupes解决了它:
fdupes -r *> deletethesefiles
然后在该文件上运行一个bash脚本。

0 个答案:

没有答案