Задать вопрос

Как узнать, был ли изменен файл?

Здравствуйте, нужно узнать, был ли изменен файл(текстовый или тому подобный) c помощью python. Нужно получить именно последнее изменение(если можно, если нет то тогда просто изменение)

Как - то так(ну может и по другому):

import os
file = 'test.txt'
if os.path.change(file) == True:
print("Были изменения")
else:
print("Изменений не было")
  • Вопрос задан
  • 340 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@rPman
два направления:
* первый периодические опросы 'времени последнего изменения' с помощью os.path.getctime(path), если время изменилось - значит файл был изменен (речь о командах на запись но содержимое не проверяется).
Достоинства - простота, высокая скорость, если количество отслеживаемых файлов мало (до сотни).
Недостаток - низкая оперативность изменений, определяется интервалом опроса

* второй, подписаться на события изменений файла в файловой системе средствами ОС, они отличаются в каждой свои (например для linux гугли библиотеки python inotify). Можно вместо своей реализации использовать готовые утилиты (в linux inotify/inoticoming/incron/...)
Достоинства - высокая оперативность и скорость реакции на изменения, можно отслеживать изменения в огромном количестве файлов, очень подробная информация о действиях (например можно получить события о том что файл кем то был открыт и его читают)
Недостатки - сложность реализации, зависимость реализации от операционной системы.

p.s. Внимание, в зависимости от выбранного метода и операционной системы возможны неожиданные последствия попыток отслеживания файлов по символическим и жестким ссылкам (можно пропускать события изменений, вопрос не изучал но нужны тесты)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
19 февр. 2025, в 21:51
50000 руб./за проект
19 февр. 2025, в 21:33
150000 руб./за проект
19 февр. 2025, в 21:08
30000 руб./за проект