比较目录间的差异:
I 只按照名称做了比较,如果目录的文件名称相同,但是内容不同脚本认为为相同文件
II 针对目录下面的目录没有循环比较,只是比较了目录的名称
import sys, os def difference(seq1, seq2):
"""
返回仅在seq1中的项
"""
return [item for item in seq1 if item not in seq2] def reportdiff(unique1, unique2, dir1, dir2):
if not (unique1 or unique2):
print("dir lists are identical")
else:
if unique1:
print("file unique to", dir1)
for item in unique1:
print('...', item)
if unique2:
print("file unique to", dir2)
for item in unique2:
print("...", item) def compareDirs(dir1, dir2):
print("comparing {0} to {1}".format(dir1, dir2))
if not (os.path.isdir(dir1) and os.path.isdir(dir2)):
return
else:
files1 = os.listdir(dir1)
files2 = os.listdir(dir2)
unique1 = difference(files1, files2)
unique2 = difference(files2, files1)
reportdiff(unique1, unique2, dir1, dir2) if __name__ == '__main__':
compareDirs('../testdir', '../testdir1')