根据内容对同一目录中的文件进行分组

山姆

我对分组具有相同内容但文件名不同的文件有疑问。我调查了filecmp.cmp(),但是一次只比较两个文件。

这个想法是要变成这样的事情:

file1: [a,b,c,d,e,f,g,h,i]
file2: [a,b,c,d,e,f,g,h,i]
file3: [a,b,c,d,e,f,g,h,i]
file4: [a,b,c,d,e,f,g,h]
file5: [a,b,c,d,e,f,g,h]
file6: [a,b,c,d,e]

进入:

file(1,2,3): [a,b,c,d,e,f,g,h,i]
file(4,5): [a,b,c,d,e,f,g,h]
file(6): [a,b,c,d,e]

我想我大约有1800个.txt文件,但是只有大约20个唯一文件。我想创建一个列表,一个字典或一个显示分组的数据框。

任何帮助表示赞赏。谢谢!

安倍·宾德

一种经典的方法是使用字典。首先,编译目录中所有文件名的列表,并将其存储到名为file_names的列表中。然后:

filedict={}
for name in file_names:
    file=open(name,"r")
    filecontents=file.read()
    if filecontents in filedict:
        filedict[filecontents].append(name)
    else:
        filedict[filecontents]=[]
        filedict[filecontents].append(name)

该词典的每个值都是具有相同文本内容的文件列表。字典的键将是文件的字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章