这是识别一组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/
我对任何建议解决此问题的语言或方法持开放态度。
我用fdupes解决了它:
fdupes -r *> deletethesefiles
然后在该文件上运行一个bash脚本。