Difflib Python занимает слишком много времени для сравнения ⇐ Python

Программы на Python
Anonymous
Difflib Python занимает слишком много времени для сравнения

Сообщение Anonymous »

Я использую difflib для сравнения результатов двух тестовых файлов, но когда разница слишком велика, difflib занимает слишком много времени, больше минуты. Есть ли другая альтернатива, чтобы найти первый несовпадающий файл? строка в обеих строках?
Пример:

Код: Выделить всё

string 1 = "Yes\n1\nYes\n2\nNo\n3\n..."

Код: Выделить всё

string 2 = "Yes\n1\nNo\n2\nYes\n3\n..."
первая несоответствующая строка = 3
и каким-то образом я знаю, что "да\n2" - это мой тестовый пример, который не удался, это должно было быть "Нет\n2" (у меня есть подтверждающие данные)
На данный момент я использую difflib для сравнения двух строк и получения массива различий, а затем я получить первое несоответствие (+ или -) и получить строку неудачного теста в соответствии с ним, а затем мне довольно просто получить неудачный тестовый пример.
Но проблема в том, что когда в строках слишком большая разница, это занимает больше минуты.
Возможные решения, которые я могу придумать сейчас, -
  • Использование difflib таким образом, чтобы он не сравнивал весь файл, а просто давал первое различие
  • что, если я выполню построчное сравнение, может ли это повлиять на производительность
  • Используя команду Linux diff, но она не предоставляет такой массив, как difflib (что упрощает получение несовпадающего номера строки ).


Подробнее здесь: https://stackoverflow.com/questions/790 ... to-compare

Вернуться в «Python»