这是一个出现在 Python 编码竞赛中的问题,想知道如何实现。
问题陈述:
你有两个目录(里面可能有子目录)。您的脚本应该通过比较两个根目录中相同文件名的内容来找出重复文件
结果: 失败:如果至少一个相同文件名的内容不同
通过:否则
这是一个示例图
/dir1 /dir2
-- file1 -- file1
-- file2 -- fileA
-- file3 -- fileB
-- ....
-- ...
---/subDir1
--file1
--file2
file1 of dir1 contains :- foo bar
file1 of dir2 contains :- foo
Result - Fail
file1 of dir1 contains :- foo bar
file1 of dir2 contains :- foo bar
Result - Pass.
我尝试按文件大小使用散列,但显然不是这样:)
PS:任何脚本语言都可以。
谢谢 凯利
最佳答案
您可以分层解决这个问题。
- 遍历每个目录/子目录,比较文件的大小。
- 如果文件大小不同=>失败
- 如果不匹配则计算每个文件的 SHA1 哈希 => 失败
- 如果 SHA1 哈希值匹配,则对内容进行逐字节比较 在文件中绝对确定。
关于python - 使用 Python 查找重复文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9510865/