Python寫入數(shù)據(jù)到MP3文件中的方法
本文實(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ì)有所幫助。
相關(guān)文章
查找python項(xiàng)目依賴并生成requirements.txt的方法
今天小編就為大家分享一篇查找python項(xiàng)目依賴并生成requirements.txt的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07Python常用base64 md5 aes des crc32加密解密方法匯總
這篇文章主要介紹了Python常用base64 md5 aes des crc32加密解密方法匯總,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Django解決無法從request.POST中獲取URL傳進(jìn)來的參數(shù)
這篇文章主要介紹了Django解決無法從request.POST中獲取URL傳進(jìn)來的參數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12python遍歷一個(gè)目錄,輸出所有的文件名的實(shí)例
下面小編就為大家分享一篇python遍歷一個(gè)目錄,輸出所有的文件名的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04python算法與數(shù)據(jù)結(jié)構(gòu)朋友圈與水杯實(shí)驗(yàn)題分析實(shí)例
這篇文章主要介紹了python算法與數(shù)據(jù)結(jié)構(gòu)朋友圈與水杯實(shí)驗(yàn)題分析,總的來說這并不是難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來一種解題優(yōu)化的思路2022-12-12