Сравнение более 2 файлов в python3 - PullRequest
0 голосов
/ 22 октября 2011

Мне нужно проверить, не отличаются ли более двух файлов, используя python3: есть ли какая-нибудь библиотека для этого?

  • файлы могут быть относительно большими
  • Надеюсьсами по себе не заботятся о различиях: достаточно знать, что они разные (то есть я предпочел бы, чтобы что-то останавливалось, как только обнаружится какая-либо разница)

filecmp делает два файла одновременно, конечно я могу сделать несколько проверок, но это именно то, что я пытаюсь обойти, если возможно .

Ответы [ 2 ]

1 голос
/ 23 октября 2011

Следующая функция принимает список имен файлов в качестве параметра.
Возвращает 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
0 голосов
/ 23 сентября 2012

используйте filecmp следующим образом:

import filecmp; 
filecmp.cmp(file1,file2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...