歌词解析&class

2020-01-17 11:38:47 浏览数 (1)

代码语言:javascript复制
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))

0 人点赞