這篇文章主要介紹了Python寫入數據到MP3文件中的方法,可實現將MP3文件相關信息寫入MP3文件的功能,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了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程序設計有所幫助。
新聞熱點
疑難解答