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:
    flines = f.readlines()
    glines = g.readlines()

d = difflib.Differ()
diff = d.compare(flines, glines)
print("\n".join(diff))

Трассировка: из импорта difflib_data * ImportError: Нет модуля с именем difflib_data

Как убрать эту ошибку.... спасибо

2 ответа

Решение

Из следующего поста кажется, что это пример данных, представленных в руководстве PyMOTW.

Я предполагаю, что автор хочет, чтобы вы скопировали и вставили источник тестовых данных в новый файл difflib_data.py в вашем рабочем каталоге.

Скопируйте следующие строки в difflib_data.py

text1 = """Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integereu lacus accumsan arcu fermentum euismod. Donec pulvinar porttitortellus. Aliquam venenatis. Donec facilisis pharetra tortor. In necmauris eget magna consequat convallis. Nam sed sem vitae odiopellentesque interdum. Sed consequat viverra nisl. Suspendisse arcumetus, blandit quis, rhoncus ac, pharetra eget, velit. Maurisurna. Morbi nonummy molestie orci. Praesent nisi elit, fringilla ac,suscipit non, tristique vel, mauris. Curabitur vel lorem id nisl portaadipiscing. Suspendisse eu lectus. In nunc. Duis vulputate tristiqueenim. Donec quis lectus a justo imperdiet tempus."""

text1_lines = text1.splitlines()

text2 = """Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integereu lacus accumsan arcu fermentum euismod. Donec pulvinar porttitortellus. Aliquam venenatis. Donec facilisis pharetra tortor. In necmauris eget magna consequat convallis. Nam sed sem vitae odiopellentesque interdum. Sed consequat viverra nisl. Suspendisse arcumetus, blandit quis, rhoncus ac, pharetra eget, velit. Maurisurna. Morbi nonummy molestie orci. Praesent nisi elit, fringilla ac,suscipit non, tristique vel, mauris. Curabitur vel lorem id nisl portaadipiscing. Suspendisse eu lectus. In nunc. Duis vulputate tristiqueenim. Donec quis lectus a justo imperdiet tempus."""

text2_lines = text2.splitlines()

Чтобы избавиться от исключения «Нет модуля difflib_data», удалитеfrom difflib_data import *и заменить

      diff = d.compare(flines, glines)
print("\n".join(diff))

С помощью этого кода:

      diff = difflib.ndiff(text1_lines, text2_lines)
print('\n'.join(list(diff)))
Другие вопросы по тегам