歌词解析&class

发布时间:2019-05-19 23:27:56编辑:auto阅读(1821)

    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))

关键字