2011-10-22 101 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做了兩文件,當然**我可以做多個檢查,但這正是我想繞過**,如果可能的話。 –