Я ищу кросс-платформенный пакет для мониторинга файлов python? Я знаю, что можно контролировать файлы на окнах с помощью pywin32, и есть пакеты, работающие в Linux/Unix, но кто-нибудь знает о кросс-платформенном?
Мониторинг содержимого файлов/каталогов?
Ответ 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 может быть настроен для печати выходных строк на стандартном выходе любым способом. Посмотрите и этот вопрос для хорошего примера.