Python守护进程监视文件夹并更新数据库

Python守护进程监视文件夹并更新数据库,python,database,filesystems,daemon,Python,Database,Filesystems,Daemon,这是专门为管理MP3文件而设计的,但它应该很容易适用于任何包含大量文件的目录结构 我想找到或编写一个守护进程(最好是Python),它将监视一个包含许多子文件夹的文件夹,这些子文件夹都应该包含X个MP3文件。无论何时添加、更新或删除文件,都应该在数据库中反映出来(最好是PostgreSQL)。我愿意接受如果一个文件被简单地移动,那么相应的行将被删除并重新创建,但是更新现有的行将使我最高兴 堆栈溢出问题有一点我想要的 我基本上只是想要一个数据库,然后我可以做任何我想用的。到目前为止,我最新的数据库

这是专门为管理MP3文件而设计的,但它应该很容易适用于任何包含大量文件的目录结构

我想找到或编写一个守护进程(最好是Python),它将监视一个包含许多子文件夹的文件夹,这些子文件夹都应该包含X个MP3文件。无论何时添加、更新或删除文件,都应该在数据库中反映出来(最好是PostgreSQL)。我愿意接受如果一个文件被简单地移动,那么相应的行将被删除并重新创建,但是更新现有的行将使我最高兴

堆栈溢出问题有一点我想要的

我基本上只是想要一个数据库,然后我可以做任何我想用的。到目前为止,我最新的数据库是我的
iTunes.xml
文件,但我不想太依赖它,因为我不想总是依赖iTunes来管理音乐。我看到很多项目做了一些我想要的事情,但其格式要么我无法访问,要么比我想要的更复杂。如果有一些媒体播放器可以观看文件夹并更新易于访问的数据库,那么我完全支持


我之所以倾向于编写自己的数据库和模式,是因为最好自己选择数据库和模式。

如果您使用Linux,您可以使用


可以在程序运行时通知您文件系统事件。

IMO,具有这些功能的最佳媒体播放器是。它每X分钟重新扫描一次音乐文件夹,这对音乐来说已经足够了(但当然比让操作系统监视更改的效率要低一点)


但是,当您询问关于编写自己的代码的建议时,您可以使用(仅限Linux)。如果您运行的是Windows,您可以使用已经为Linux推荐的另一个答案,让我为Windows添加(Windows中的可能性讨论很好,本模块就是一个示例)和Mac(不幸的是,我认为没有一个跨平台的模块为这些不同的系统特定方式提供统一的接口来获取目录更改通知事件)


一旦您成功获取此类事件,更新相应的SQL数据库就很简单了!-)

它可以连接到数据库吗?我怎么才能访问它的数据?我猜你是说Winamp数据库?!它存储在
~\Application Data\Winamp\Plugins\ml\main.*
(当然是在Windows上)中,并且有一个特殊的文件格式,如果您想操作它,请参见中所述的文件格式-您实际上不必这样做,如果Winamp提供了所有必要的功能,为什么您要编辑数据库?我不一定要音乐播放器。我正在寻找一种将我收藏的所有元数据存储在数据库中的方法。如果它没有与媒体播放器完全集成,这就没有意义。我如何处理这些数据取决于我自己。感谢您的帮助。pyinotify链接已断开: