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