Описание тега difflib

Модуль python предоставляет инструменты для вычислений и работы с различиями между последовательностями, что особенно полезно для сравнения текста. Включает функции, которые создают отчеты с использованием нескольких общих форматов различий.
2 ответа

ImportError: нет модуля с именем difflib_data

Я работаю с Python 3.4 в Windows 7. Пытаясь сравнить два текстовых файла, и я хочу сообщить о различиях в них с помощью difflib. Ниже приведен код, использующий: import difflib from difflib_data import * with open("s1.txt") as f, open("s2.txt") as g…
17 сен '14 в 06:40
0 ответов

Как сравнить два заголовка (строки), чтобы увидеть, относятся ли они к одной книге?

Я пытаюсь сравнить два названия (из разных источников) одной и той же книги, для каждой книги в огромном списке книг, чтобы увидеть, относятся ли они к одной и той же книге или нет. Вот небольшой фон. Я работаю стажером в библиотеке. Персонал здесь …
1 ответ

Программно выяснить, эквивалентны ли переведенные имена

Я пытаюсь увидеть, эквивалентны ли два переведенных имени. Иногда перевод будет иметь имена, упорядоченные по-разному. Например: >>> import difflib >>> a = 'Yuk-shing Au' >>> b = 'Au Yuk Sing' >>> seq=difflib.Sequ…
14 мар '15 в 20:10
1 ответ

Как получить различия в списке

Ниже приведены два списка кортежей: text1_lines = [('a','1'), ('b', '2'), ('c','3')] text2_lines = [('a','4'), ('z', '5'), ('c','6')] Я могу получить различия с кодом ниже d = difflib.Differ() diff = d.compare(text1_lines,text2_lines) diff_list = '\…
15 апр '17 в 06:24
2 ответа

Есть ли альтернатива difflib.get_close_matches(), которая возвращает индексы (позиции списка) вместо списка str?

Я хочу использовать что-то вроде difflib.get_close_matches но вместо самых похожих строк я бы хотел получить индексы (то есть положение в списке). Индексы списка являются более гибкими, потому что можно связать индекс с другими структурами данных (с…
14 июн '18 в 15:38
1 ответ

Вывод pandas csv имеет [''] при добавлении аргумента отсечки

Я успешно добавил опцию отсечения для get_close_matches в Pandas. По какой-то причине, когда я добавляю cutoff=0,7, когда он выводится на мой CSV, он читается как ['Name']. Когда у него не было аргумента обрезания, он просто выводил совпадение без […
20 апр '18 в 15:47
0 ответов

Игнорирование пробелов в разнице в питоне

Есть ли элегантный способ игнорировать пробелы в diff в python (используя difflib или любой другой модуль)? Может быть, я что-то пропустил, но я просмотрел документацию и не смог найти какой-либо явной поддержки для этого в difflib. Мое текущее реше…
05 авг '13 в 18:01
1 ответ

Возможно ли, что SequenceMatcher в difflib Python мог бы предоставить более эффективный способ для вычисления расстояния Левенштейна?

Вот учебный пример общего алгоритма для вычисления расстояния Левенштейна (я взял из веб-сайта Магнуса Хетланда): def levenshtein(a,b): "Calculates the Levenshtein distance between a and b." n, m = len(a), len(b) if n > m: # Make sure n <= m, …
1 ответ

Разные строки между двумя файлами, когда одна строка содержит конечные пробелы (Python, difflib)

Я хочу сравнить два текстовых файла в Python и вернуть строки, которые отличаются. Моя попытка использует difflib, но я открыт для других предложений. Мне нужно получить строки, которые отличаются, а также строки, которые появляются в одном файле, н…
07 дек '17 в 05:28
1 ответ

Python Diff две многострочные строки, такие как GitHub

Я хочу получить разностный вывод, подобный коммит-представлению github. И я попробовал это: import difflib first = """ def baz """ second = """ deff ba bar foo """ diff = '' for text in difflib.unified_diff(first, second): for prefix in ('---', '+++…
3 ответа

Получить близкие совпадения строк с учетом удаления - python

Есть ли способ позволить difflib рассмотреть удаление при сопоставлении строк? Я попробовал difflib.get_close_matches() но он не учитывает строки с меньшей длиной в результатах близких совпадений. Например from difflib import get_close_matches as gc…
2 ответа

Слияние фреймов данных

Я боролся с этой проблемой весь день. У меня есть два кадра данных следующим образом: Dataframe 1 - Рекламные щиты Фрейм данных 2 Я хотел бы объединить Dataframe 2 с Dataframe 1, основанным на песне, чтобы получить фрейм данных с SongId, Song, Rank …
28 май '18 в 16:14
2 ответа

Как использовать SequenceMatcher, чтобы найти сходство между двумя строками?

import difflib a='abcd' b='ab123' seq=difflib.SequenceMatcher(a=a.lower(),b=b.lower()) seq=difflib.SequenceMatcher(a,b) d=seq.ratio()*100 print d Я использовал приведенный выше код, но полученный результат равен 0.0. Как я могу получить правильный о…
26 янв '11 в 07:10
6 ответов

Генерация и применение различий в Python

Есть ли в Python "готовый" способ генерировать список различий между двумя текстами, а затем применять этот diff к одному файлу, чтобы позже получить другой? Я хочу сохранить историю изменений текста, но не хочу сохранять весь текст для каждой верси…
21 фев '10 в 21:13
0 ответов

Модуль Python Difflib игнорирует пробелы (HTMLDiff)

Я использую модуль Difflib из python для сравнения двух разных файлов, но я хочу, чтобы он игнорировал пробелы и табуляции. API-Doc не работает для меня, и я очень старался, чтобы он работал, но ничего не получалось. Я использую HTMLDiff: difference…
07 дек '18 в 13:23
3 ответа

Почему я получаю случайный элемент с difflib.ndiff?

Минимальный рабочий пример: In [3]: a = ('r1', 'r2', 'r11', 'r6', 'r1', 'r2', 'r7', 'r8') In [4]: b = ('r1', 'r2', 'r1', 'r6', 'r1', 'r2', 'r7', 'r8') In [5]: list(difflib.ndiff(a, b)) Out[5]: [' r1', ' r2', '- r11', '? -\n', '+ r1', ' r6', ' r1', '…
02 мар '19 в 16:12
1 ответ

get_matching_blocks() игнорирует некоторые блоки, если сначала совпадает с блоками, которые появятся позже

Вот код Python - import difflib x = "abxcd" y= "cdab" s = difflib.SequenceMatcher(None, x, y) for block in s.get_matching_blocks(): a=block[0:] if a[2]>0: m=a[0] n=a[0]+a[2] print (x[m:n]) Он печатает только "ab" и игнорирует "cd". Но я хочу, что…
16 янв '19 в 11:24
1 ответ

Как получить отредактированный результат, добавив похожие строки из "ndiff"?

Я хочу обновить file1 из file2.Я хочу добавить строки, которые похожи в обоих файлах. Я получил результат сравнения с помощью difflib.ndiff(). Как добавить строки, которые были изменены в одиночку? import difflib file1='file1.txt' file2='file2.txt' …
05 фев '19 в 11:32
2 ответа

Сравнить строку в двух разных файлах python

Мне нужна ваша помощь, потому что после долгих исследований я не нашел подходящего ответа на свои проблемы. У меня есть 2 файла, которые содержат некоторую информацию. Некоторые из этой информации похожи другие отличаются. Первый файл отсортирован, …
13 окт '15 в 13:13
1 ответ

Python Asyncio с difflib замедляет ползти

У меня есть скрипт, который асинхронно загружает несколько URL-адресов, а затем постоянно отслеживает их изменения с помощью difflib import asyncio import difflib import aiohttp urls = ['http://www.nytimes.com/', 'http://www.time.com/', 'http://www.…