本文實(shí)例講述了Python寫入數(shù)據(jù)到MP3文件中的方法。分享給大家供大家參考。具體分析如下:
通過Mp3的Id3V1數(shù)據(jù)段的數(shù)據(jù)來修正Mp3文件的正確名字,但是,有時(shí)候這個(gè)數(shù)據(jù)斷中的數(shù)據(jù)是空的,所以這里寫一個(gè)修改Id3V1數(shù)據(jù)段的數(shù)據(jù)的函數(shù),同樣是練習(xí)。
使用方法:
writeMp3Header[ SongName] = '測(cè)試歌曲名稱' writeMp3Header[ SongPeople] = '不得閑' writeMp3Header[ ZhuanJi] = '專輯' writeMp3Header[ Year] = '2009' writeMp3Header[ Bak] = '備注測(cè)試' 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()希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選