Python MP3 元数据标签
我想写一个脚本,能够递归地扫描一个指定的文件夹,如果找到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返回音乐的类型,结果是一个字符串。