python修改mp3标题

2015/09/2411:18:24python修改mp3标题已关闭评论

很多时候,我们从互联网下载过来的MP3是没有标题的,很烦燥,特意弄了个程序,Mark一下!

 

# coding:utf-8

def ModifyMp3FileInfo(filename):
    mp3Id3V1 = {
        "tag": {"valuepos": (0, 3), "value": ""},
        "SongName": {"valuepos": (3, 33), "value": ""},
        "SongPeople": {"valuepos": (33, 63), "value": ""},
        "Zj": {"valuepos": (63, 93), "value": ""},
        "Year": {"valuepos": (93, 97), "value": ""},
        "Bak": {"valuepos": (97, 125), "value": ""}
    }
    try:
        import os
        if not os.path.exists(filename):
            print 'File not exists:' + filename
            return
        f = open(filename, 'rb')
        f.seek(-128, 2)
        sdata = f.read(3)
        if sdata == 'TAG':
            f.seek(-128, 2)
            sdata = f.read(128)
            for tag, subitem in mp3Id3V1.items():
                subitem["value"] = sdata[subitem["valuepos"][0]:subitem["valuepos"][1]].replace('\00', '').strip()
                print '%s=' % tag, '%s' % subitem["value"], '\n'
            f.close()
            
            if mp3Id3V1["SongName"]["value"] != '':
                test = [os.path.dirname(filename), '\\']
                test.append(mp3Id3V1["SongName"]["value"])
                test.append('.mp3')
                newfilename = ''.join(test)
                print newfilename
                if os.path.exists(newfilename):
                    test = ['Filename ', newfilename, ' Has Existed']
                    print ''.join(test)
                else:
                    try:
                        os.rename(filename, newfilename)
                    except WindowsError, e:
                        if e.winerror:
                            print 'Modify filename failed ,maybe the file is inuse'
                        else:
                            print 'UnKnown error'
        else:
            print 'Is not a MP3 file'
    except IOError:
        print 'Open file failed'

if __name__ == '__main__':
    ModifyMp3FileInfo('d:\\123.mp3')

 

  • 微信扫码赞助
  • weinxin
  • 支付宝赞助
  • weinxin