Python MP3 元数据标签

2 投票
1 回答
669 浏览
提问于 2025-04-16 05:09

我想写一个脚本,能够递归地扫描一个指定的文件夹,如果找到mp3文件,就提取并打印出它的元数据标签。不过,我传给getEyeD3Tag的参数总是出现异常。以下是我到目前为止写的代码:

  def getEyeD3Tags(path):
    try:
        trackInfo = eyeD3.Mp3AudioFile(path)
        tag = trackInfo.getTag()
        tag.link(path)
        print tag.getArtist()
        print tag.getAlbum()
        print tag.getTitle()

        #return (tag.getArtist(),tag.getTitle(),tag.getAlbum())
    except eyeD3.InvalidAudioFormatException:
        print "File %s is not a mp3 file " % path
mp3Num=0
temp=os.walk(valid-folder-name)
for root, dirs, files in temp:
    for i in files:
        if os.path.join(root,i):
            temp=os.path.splitext(i)
            temp[1].lower()
            if temp[1]=='.mp3':
                mp3Path=os.path.join(root,i)
                print mp3Path
                getEyeD3Tags(mp3Path)
                mp3Num+=1
                raw_input()
            #print "**"
        else:
            print "Error invalid path"
    print "\n\n"
    #raw_input()
print mp3Num
raw_input()

顺便问一下,有没有办法用eyeD3获取mp3文件的音乐类型?谢谢!

1 个回答

2

要检查正在解析的文件是否是有效的mp3格式,可以使用eyeD3.isMp3File(filename)这个方法。

下面是我写的一个小脚本,用来自动整理我的音乐文件夹。

def parseIDETag(self, path):
        if eyeD3.isMp3File(path):

这样,如果文件不是mp3格式,它就会被跳过。

另外,str(tag.getGenre())这个代码可以用eyeD3返回音乐的类型,结果是一个字符串。

撰写回答