Демон Python для просмотра папки и обновления базы данных

Это специально предназначено для управления файлами MP3, но оно должно легко работать для любой структуры каталогов с большим количеством файлов.

Я хочу найти или написать демона (желательно на Python), который будет смотреть папку со многими вложенными папками, которые должны содержать X-число MP3-файлов. Каждый раз, когда файл добавляется, обновляется или удаляется, он должен отражать это в базе данных (желательно PostgreSQL). Я готов принять, если файл просто перемещен, что соответствующие строки удаляются и воссоздаются заново, но обновление существующих строк сделает меня самым счастливым.

Вопрос о переполнении стека Управление большой коллекцией музыки имеет немного того, что я хочу.

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

Причина, по которой я склоняюсь к написанию собственного, заключается в том, что было бы неплохо выбрать мою базу данных и схему.

  • Как вы импортируете файл в python с пробелами в имени?
  • Какие API-интерфейсы Python находятся там?
  • Хорошая документация / учебник для веб-сайта python
  • Как преобразовать строку, представляющую двоичную дробь, в число в Python
  • Вызов сопрограммы в asyncio.Protocol.data_received
  • Загрузить CSV в Pandas MultiIndex DataFrame
  • Как вы можете сделать кнопку прокрутки вверх, как в Stackoverflow?
  • Есть ли лучший способ сделать numpy.argmin () игнорировать значения NaN
  • 3 Solutions collect form web for “Демон Python для просмотра папки и обновления базы данных”

    Еще один ответ уже предложил pyinotify для Linux, позвольте мне добавить watch_directory для Windows (хорошее обсуждение возможностей в Windows здесь , пример модуля) и fsevents на Mac (к сожалению, я не думаю, что есть один кросс-платформенный модуль предлагая единый интерфейс для этих различных системных способов получения уведомлений об изменении каталога).

    Как только вам удастся получить такие события, обновление соответствующей базы данных SQL прост! -)

    Если вы используете Linux, вы можете использовать PyInotify .

    inotify может уведомлять вас о событиях файловой системы, когда ваша программа запущена.

    IMO, лучший медиаплеер, у которого есть эти функции, – Winamp . Он перетаскивает музыкальные папки каждые X минут, чего достаточно для музыки (но, конечно, немного менее эффективно, чем позволить операционной системе следить за изменениями).

    Но поскольку вы просили предложения по написанию своих собственных, вы можете использовать pyinotify (только для Linux). Если вы используете Windows, вы можете использовать вызов ReadDirectoryChangesW API

    Interesting Posts

    Почему автозаполнение PyCharm не работает для библиотек, которые я устанавливаю?

    Поиск главы существительного в NLTK и stanford parse в соответствии с правилами поиска главы NP

    Python HMAC-SHA1 vs Java HMAC-SHA1 разные результаты

    Как сериализовать объект Java таким образом, чтобы его можно было десериализовать с помощью pickle (Python)?

    Странное поведение при наследовании из списка в python

    Правильное использование мьютексов в Python

    Как использовать cache_clear () для python @ functools.lru_cache

    Как загрузить C # dll в python?

    Извлечение содержимого двоичного файла с использованием Javascript, base64 кодирует его и реверсирует его с помощью Python

    Не показывать длинные опции дважды в print_help () из argparse

    Поведение os.listdir на Python в Windows

    Как я могу имитировать вход для stdin для pyunit?

    wxPython: Как узнать, какой виджет имеет фокус?

    Где help.py для обезьянника Android

    Что такое StringIO в python, который используется в действительности?

    Python - лучший язык программирования в мире.