2016-09-28 4 views
1

Я пишу скрипт python для отслеживания изменений на веб-странице. У меня есть команда diff, реализованная в python, и у меня есть файлы вывода diff в папке.Как получить оповещение о выходе diff с помощью python

У меня есть 260 выходных файлов. Логически я не могу проверить все 260, чтобы узнать, какой файл имеет изменения.

Есть ли решение для python для чтения всех файлов diff и уведомлять меня об именах файлов, которые имеют изменения.

sample filename in my diff output folder: ['4streaming', 'net-log-2016-09- 26-12:29:32']-diff-output-2016-09-27-13:07:32.html 



Required output: 4streaming has changed 

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

ответ

4

Чтобы проверить, если два файла имеют одинаковое содержание вы можете использовать filecmp модуль:

>>> import filecmp 
>>> filecmp.cmp('a_file.txt', 'another_file.txt') 
True 

Так что в вашем случае, если у вас есть много файлов, вы можете хранить их имена в списке (напр. file_list), и с помощью itertools сравнить каждый элемент == файл в списке только один раз с другими:

import itertools 
for i,j in itertools.combinations(File_list, 2): 
    filecmp.cmp(i, j) #where i,j are actual file names 
    # do something based on the result 

* Для того, чтобы получить список с принять все имена файлов в директории посмотреть на this пост.

Другой способ - путем хэширования и сравнения хэшей.