本文实例讲述了Python写入数据到MP3文件中的方法。分享给大家供大家参考。具体分析如下:
通过Mp3的Id3V1数据段的数据来修正Mp3文件的正确名字,但是,有时候这个数据断中的数据是空的,所以这里写一个修改Id3V1数据段的数据的函数,同样是练习。
使用方法:
writeMp3Header[ SongName] = \'测试歌曲名称\' writeMp3Header[ SongPeople] = \'不得闲\' writeMp3Header[ ZhuanJi] = \'专辑\' writeMp3Header[ Year] = \'2009\' writeMp3Header[ Bak] = \'备注测试\' setMp3Header(r\'E:\\test.mp3\')
Python代码如下:
writeMp3Header = { \"SongName\":\"\", \"SongPeople\":\"\", \"ZhuanJi\":\"\", \"Year\":\"\", \"Bak\":\"\" } def setMp3Header(mp3file): mp3Id3V1 = { \"SongName\":-125, \"SongPeople\":-95, \"ZhuanJi\":-65, \"Year\":-35, \"Bak\":-31 } tags = [\'SongName\',\'SongPeople\',\'ZhuanJi\',\'Bak\'] f = open(mp3file,\'r+\') try: f.seek(-128,2) try: tempstr = f.read(3) if tempstr == \'TAG\': for tag,startPos in mp3Id3V1.items(): if writeMp3Header[tag] != \'\': f.seek(startPos,2) if tag in tags: if len(writeMp3Header[tag]) > 30: f.write(writeMp3Header[tag][:30]) else: f.write(writeMp3Header[tag]) print startPos,tag,writeMp3Header[tag] else: print \'is not a mp3file\' except IOError: print \'read error\' finally: f.close()
希望本文所述对大家的Python程序设计有所帮助。