Мониторинг содержимого файлов / каталогов? [дубликат]


этот вопрос уже есть ответ здесь:

Я ищу кросс-платформенный пакет мониторинга файлов python? Я знаю, что можно отслеживать файлы в windows с помощью pywin32, и есть пакеты, работающие на Linux / Unix, но кто-нибудь знает о кросс-платформенный один?

5   51   2009-02-28 14:42:09

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 можно подгонять для того чтобы напечатать линии выхода на стандартном выходе в любом случае вы хотите. Смотри и этот вопрос для наглядного примера.