欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

歌词解析&class

程序员文章站 2024-02-04 20:58:04
class song_song: def __init__(self,lrc_file): # 定义两个字典一个列表备用 self.song_file = lrc_file self.song_lrc ={} self.song_zhuti = {} self.song_time = [] # 将函 ......
class song_song:
def __init__(self,lrc_file):
# 定义两个字典一个列表备用
self.song_file = lrc_file
self.song_lrc ={}
self.song_zhuti = {}
self.song_time = []
# 将函数调用至song_jiexi
self.song_jiexi()

def song_jiexi(self):
# 开启文件
fp = open(self.song_file,encoding='utf-8')
lrc_hang = fp.readlines()
# 拆分
for s in lrc_hang:
# 判断歌曲信息还是歌词信息
if s[1].isdecimal():
t = s.split(']')
# 得到歌词lrc_str
lrc_str = t[-1]
t2 = t[:-1]
# 时间换算结果lrc_time3
for lrc_time in t2:
lrc_time2= lrc_time[1:].split(':')
lrc_time3 = float(lrc_time2[0])*60+float(lrc_time2[-1])
#放入字典中
self.song_lrc[lrc_time3]= lrc_str
# 字典打印
# print(self.song_lrc)
else:
#进行标题拆分
song1 = s[1:-2]
# print(song1)
song2 = song1.split(':')
if song2[0] == 'ti':
self.song_zhuti['主题'] = song2[-1]
if song2[0] == 'ar':
self.song_zhuti['歌手'] = song2[-1]
if song2[0] == 'al':
self.song_zhuti['专辑'] = song2[-1]
# 转化时间列表
self.song_time = list(self.song_lrc)
self.song_time.sort(reverse=true)
# print(self.song_time)

#主题列表打印
# print(self.song_zhuti)
def chazhao(self, t):
for i in self.song_time:
if i <= t:
return self.song_lrc[i]
return self.song_lrc[-1]

c = song_song('1.txt')
print(c.chazhao(-1))