Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

Для систем на основе Unix/Linux вы должны использовать File Alteration Monitor Python привязки к libfam.

Для систем на базе Windows вы должны привязать Win32 API FindFirstChangeNotification и связанные с ним функции.

Что касается кросс-платформенного способа, я не знаю о хорошем кросс-платформенном способе. Я думаю, что было бы лучше всего создать модуль самостоятельно, который работает на любой ОС, которая использует один из двух вышеописанных методов после обнаружения какой ОС это.

Ответ 2

Я работаю над лицензированной лицензией MIT, которая помогает Python программы отслеживают события файловой системы как можно более мобильно. Есть различия, которые я пытаюсь сгладить. Высоко альфа-версия на данный момент:

Проверьте здесь: http://github.com/gorakhargosh/watchdog/

Патчи и вклады приветствуются.

Надеюсь, это поможет. знак равно Приветствия.

Ответ 3

Также проверьте эту опцию:

http://pypi.python.org/pypi/watchdog

Используется с кросс-платформенным приложением в Windows и OS X.

Ответ 4

Я нашел эту ссылку, которая рассказывает о вашей проблеме. Хотя на самом деле это не обеспечивает решение s/library, я думаю, что это поможет. http://www.stepthreeprofit.com/2008/06/cross-platform-monitoring-of-filesystem.html

Я не думаю, что есть кросс-платформенный, но вам, возможно, захочется катиться самостоятельно.

Я неопытен в этой области, поэтому я не уверен. Надеюсь, это поможет.

Примечание
Я исправляюсь, gamin доступен на cygwin, как заметил мне в комментарии Адам Бернье. Вы можете изучить другие варианты cygwin (если они существуют).

Ответ 5

Самый простой способ в Linux - использовать inotifywait (учитывая, что ваше ядро ​​достаточно недавно). Вам не нужны специальные привязки, inotifywait может быть настроен для печати выходных строк на стандартном выходе любым способом. Посмотрите и этот вопрос для хорошего примера.