Я ищу кросс-платформенный пакет мониторинга файлов python? Я знаю, что можно контролировать файлы на окнах с помощью pywin32, и есть пакеты, работающие в Linux/Unix, но кто-нибудь знает о кросс-платформенном?Мониторинг содержимого файлов/каталогов?
ответ
Для систем на основе Unix/Linux вы должны использовать File Alteration Monitor Python bindings для libfam.
Для систем на базе Windows вы должны привязать к Win32 API FindFirstChangeNotification
и связанным с ним функциям.
Что касается кросс-платформенного способа, я не знаю о хорошем кросс-платформенном пути. Я думаю, что было бы лучше всего создать модуль самостоятельно, который работает на любой ОС, которая использует один из двух вышеописанных методов после обнаружения какой ОС это.
Не могли бы вы объяснить, как использовать API W32 в примере ... потому что я этого не понимаю ... – wishi
Я нашел эту ссылку, которая рассказывает о вашей проблеме. Хотя на самом деле это не обеспечивает решение s/library, я думаю, что это поможет. http://www.stepthreeprofit.com/2008/06/cross-platform-monitoring-of-filesystem.html
Я не думаю, что есть кросс-платформенный, но вам, возможно, захочется катиться самостоятельно.
Я неопытный в этой области, поэтому я не уверен. Надеюсь, это поможет.
Примечание
я исправлюсь, беспризорник доступно на Cygwin, как Адам Бернье указал мне в комментарии. Возможно, вам захочется изучить другие варианты cygwin (если они существуют).
Самый простой способ использования Linux - использовать inotifywait (учитывая, что ваше ядро достаточно недавно). Вам не нужны специальные привязки, inotifywait может быть настроен для печати выходных строк на стандартном выходе любым способом. Посмотрите и this question для хорошего примера.
Он специально упомянул кросс-платформу.inotifywait только для linux –
Я работаю над лицензированной лицензией MIT, которая помогает программам Python отслеживать события файловой системы как можно более портативно. Есть различия, которые я пытаюсь сгладить. Очень альфа-версия на данный момент:
Посмотрите здесь: http://github.com/gorakhargosh/watchdog/
Патчи и взносы приветствуются.
Надеюсь, это поможет. =) Приветствия.
Также проверьте этот вариант:
http://pypi.python.org/pypi/watchdog
Использовался с приложением кросс-платформенных на Windows, и OS X.
Возможно, потому что автор сторожевого пса отправлен об этом в ответ год назад, и в этом ответе мало? Наверное, не стоит нисходящего, но не слишком дорого стоит. – fencepost
Мне это нравится, потому что он сказал, что использовал его, и все в порядке. – droope
Я никогда не понимаю, почему ответ получил вниз. Вот использование сторожевого таймера: http://pythonhosted.org/watchdog/quickstart.html – swdev
Tim Golden имеет очень простой метод кросс-платформенную опроса директории с os.listdir здесь: http://timgolden.me.uk/python/win32_how_do_i/watch_directory_for_changes.html – bernie
Что означает «монитор»? Просьба указать какой-то намек на то, что вы пытаетесь сделать. –