2009-08-26 6 views
8

Я знаю, что я могу использовать cmp, diff и т. Д., Чтобы сравнить два файла, но то, что я ищу, - это утилита, которая дает мне процентное различие между двумя файлами.процентное различие между двумя текстовыми файлами

, если такой утилиты не существует, любой алгоритм будет работать отлично. Я читал о нечетком программировании, но я не совсем понял.

+0

Как вы определяете "процентное различие"? Как вы учитываете отсутствующие, лишние и замененные символы/слова/строки? –

+1

не будет никаких обменных символов или слов или строк в файлах. два файла - это файлы журнала, один файл журнала - это файл журнала скважины, что означает, что система работает отлично. в каждый час записывается новый журнал. поэтому я хочу сравнить новый записанный журнал со стандартным журналом. если новый журнал отличается от стандартного журнала, а затем отправьте письмо в службу поддержки уровня {X}. так понятно? – Mohamed

+0

Смотрите: http://stackoverflow.com/questions/145607/text-difference-algorithm – tzot

ответ

26

Вы можете использовать difflib.SequenceMatcher ratio метод

Из документации:

Возвращение мерки подобия последовательностей, как поплавок в диапазоне [0, 1].

Например:

from difflib import SequenceMatcher 
text1 = open(file1).read() 
text2 = open(file2).read() 
m = SequenceMatcher(None, text1, text2) 
m.ratio() 
+0

спасибо, что я не знал эту часть библиотеки. – Mohamed

0

Beyond Compare имеет очень хорошая статистика различий в файлах экспортируется в csv. Сообщается о различиях на уровне строк, поэтому приятно сравнивать файлы исходного кода.

Смежные вопросы