本文实例讲述了Python写入数据到MP3文件中的方法。分享给大家供大家参考。具体分析如下:
通过Mp3的Id3V1数据段的数据来修正Mp3文件的正确名字,但是,有时候这个数据断中的数据是空的,所以这里写一个修改Id3V1数据段的数据的函数,同样是练习。
使用方法:
1
2
3
4
5
6
|
writeMp3Header[ SongName] = '测试歌曲名称'
writeMp3Header[ SongPeople] = '不得闲'
writeMp3Header[ ZhuanJi] = '专辑'
writeMp3Header[ Year] = '2009'
writeMp3Header[ Bak] = '备注测试'
setMp3Header(r 'E:\test.mp3' )
|
Python代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
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程序设计有所帮助。