比较目录间的差异:
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')