2011-10-22 59 views
-1

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

  • 的文件可能是比较大的
  • 我不关心自己的差异:知道他们是不同的足够(即我喜欢的东西,一旦发现任何区别停止)

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

回答

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 
-3

使用filecmp这样的:

import filecmp; 
filecmp.cmp(file1,file2) 
+2

请给一个随机的答案之前,实际读取的问题:_filecmp做了两文件,当然**我可以做多个检查,但这正是我想绕过**,如果可能的话。 –