Python组类似文件名

时间:2017-10-13 11:32:47

标签: python-2.7 list compare delta

我有一个包含2000个.txt文件的目录,各种大小。其中一些名称非常相似,例如:

trend_micro.txt
trendmicro.txt

microsoft-windows.txt
microsoft.txt

我在列表中包含所有文件名。我如何将这些类似的文件名组合在一起?

1 个答案:

答案 0 :(得分:1)

目前尚不清楚如何定义“相似”和“不相似”。在这里我假设两个文件名是相似的,如果它们在丢弃“ - ”和“_”后变得相同。以下代码应该做的工作

def reduce_key(fn):
    # you can change this according to your definition of "similar"
    return fn.replace("-","").replace("_","")

from collections import defaultdict
# this holds the grouped filenames
group_dict = defaultdict(list)
for fn in your_list:
    key = reduce_key(fn)
    group_dict[key].append(fn)

print(group_dict)