所以,这里的交易。我试图写一个快速的Python脚本,从MP3(艺术家,专辑,SONGNAME,流派等),并将基本ID3标签。该Python脚本将使用最有可能的诱变剂库(除非你知道一个更好的)。我不知道如何递归的目录进行扫描,以获取每个MP3的标签,然后填入数据库。此外,至于数据库结束,我希望把它作为固体越好,所以我想知道是否有人对我应该如何设计数据库本身的任何想法。如果我只是使用一个大桌,我应该用一定的关系,等等。我不是在关系数据库非常好,所以我希望得到任何帮助。哦,这是在Linux中运行。

有帮助吗?

解决方案

要开始使用Python中提取的ID3标签,有一个模块为。

from ID3 import ID3

mp3_filepath = r'/music/song.mp3'
id3_data = ID3(mp3_filepath)
print 'Artist:', id3_data['ARTIST']
print 'Title:', id3_data['TITLE']
ID3模块上

更多信息。

如果你想递归搜索MP3文件的目录,内置os模块可以做到这一点:

import os

def mp3_files(root):
  # this is a generator that will return mp3 file paths within given dir
  for f in os.listdir(root):
      fullpath = os.path.join(root,f)
      if os.path.isdir(fullpath) and not os.path.islink(fullpath):
          for x in mp3_files(fullpath):  # recurse into subdir
              yield x
      else:
          if fullpath[len(fullpath)-3:] == 'mp3':
            yield fullpath

for p in mp3_files(root_dir):
  id3_data = ID3(p)
  print 'Artist:', id3_data['ARTIST']
  print 'Title:', id3_data['TITLE']

参考。

在创建数据库而言,你不需要重新发明轮子(存储音乐数据是一个常见的数据库问题) - 谷歌搜索将帮助你。 这里的一个示例

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top