在python3中比较2个以上的文件

时间:2011-10-22 12:38:12

标签: file python-3.x

我需要检查两个以上的文件是否有所不同,使用python3:是否有某种类型的库?

  • 文件可能比较大
  • 我自己并不关心这些差异:知道它们的不同就足够了(也就是说,一旦发现任何差异,我宁愿停下来)

filecmp一次执行两个文件,当然我可以进行多次检查,但这正是我试图绕过的,如果可能的话

2 个答案:

答案 0 :(得分:1)

以下函数将文件名列表作为参数 如果任何两个文件至少有一个字节不同,则返回True,否则返回False

def find_difference(list_of_files, block_size=1000):
    fs=[open(f,'rb') for f in list_of_files]
    while True:
        first=True
        for f in fs:
            if first:
                first=False
                s1=f.read(block_size)
                end=(s1==b'')
                continue
            s2=f.read(block_size)
            if s1!=s2:
                return True
            if end and (s2!=b''):
                end=False
        if end:
            return False

答案 1 :(得分:-3)

像这样使用filecmp:

import filecmp; 
filecmp.cmp(file1,file2)