这是一个出现在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:可以使用任何脚本语言。
由于 凯利
答案 0 :(得分:3)
您可以分层解决此问题。
答案 1 :(得分:1)
查看标准库中的filecmp module。
将每个文件与另一个文件进行比较时,计算哈希值并不实用。必须读取整个文件以计算哈希值,然后再次读取以确认匹配。相比之下,直接比较可以在第一个差异中止。