如果文件夹中的所有文件都有不同的内容,如何签入python



我有一个很大的文件夹,里面有很多文档(.txt文件(。我想检查一些文件是否有一些相同的内容。文件名都是唯一的。

我知道如何比较两个文件如下:

>>> import filecmp
>>> filecmp.cmp('file1.txt', 'file1.txt')
True
>>> filecmp.cmp('file1.txt', 'file2.txt')
False

但我想同时比较所有文件。有人知道我该怎么做吗?

这里有一个简单的方法可以通过MD5 sum:对所有.txt文件进行分类

import glob
import hashlib
import json
from collections import defaultdict

def md5(filename):
hash_md5 = hashlib.md5()
with open(filename, "rb") as f:
for chunk in iter(lambda: f.read(4096), b""):
hash_md5.update(chunk)
return hash_md5.hexdigest()

dct = defaultdict(list)
for filename in glob.iglob('**/*.txt', recursive=True):
dct[md5(filename)].append(filename)

因此,如果你只想检查哪些内容相同,你只需查询如下:

print([v for k, v in dct.items() if len(v) > 1])

您不需要python,只需运行:

md5sum * | sort >filelist.txt

然后查看连续的文件是否具有相同的MD5和。

相关内容

  • 没有找到相关文章

最新更新