Мониторинг содержимого файлов / каталогов? [дубликат]
этот вопрос уже есть ответ здесь:
как посмотреть файл для изменений?
20 ответов
Я ищу кросс-платформенный пакет мониторинга файлов python? Я знаю, что можно отслеживать файлы в windows с помощью pywin32, и есть пакеты, работающие на Linux / Unix, но кто-нибудь знает о кросс-платформенный один?
5 ответов:
для систем на базе Unix / Linux, вы должны использовать монитор изменений файлов привязки Python до libfam.
для систем на базе Windows, вы должны связать в Win32 API
FindFirstChangeNotificationи связанные с этим функции.Что касается кросс-платформенного пути, я не знаю о хорошем кросс-платформенном пути. Я думаю, что было бы лучше построить модуль самостоятельно, который работает на любой ОС, которая использует один из 2 выше методов после обнаружения какой ОС это есть.
Я работаю над лицензируемой MIT библиотекой, которая помогает Python программы отслеживают события файловой системы максимально переносимо. Есть различия, которые я пытаюсь сгладить. Очень альфа-версия на данный момент:
посмотреть здесь: http://github.com/gorakhargosh/watchdog/
патчи и вклады приветствуются.
надеюсь, что это помогает. =) Овации.
также проверьте эту опцию:
http://pypi.python.org/pypi/watchdog
был использован с кросс-платформенным приложением на Windows и OS X.
Я нашел эту ссылку, которая рассказывает о вашей проблеме. Хотя это действительно не предоставить решение с/библиотека, я думаю, что это поможет. http://www.stepthreeprofit.com/2008/06/cross-platform-monitoring-of-filesystem.html
Я не думаю, что есть кросс-платформенный еще, так что вы можете свернуть свой собственный.
я неопытен в этой области, поэтому я не совсем уверен. Надеюсь, это поможет.
Примечание
Я стою исправлено, gamin доступен на cygwin, как Адам Бернье указал мне в комментарии. Вы можете изучить другие варианты на cygwin (если они существуют).
самый простой способ в Linux-использовать inotifywait (учитывая, что ваше ядро достаточно недавно). Вам не нужны никакие специальные привязки, inotifywait можно подгонять для того чтобы напечатать линии выхода на стандартном выходе в любом случае вы хотите. Смотри и этот вопрос для наглядного примера.
Comments