zoukankan      html  css  js  c++  java
  • 歌词解析&class

    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))
  • 相关阅读:
    ELK学习实验004:Elasticsearch的简单介绍和操作
    ELK学习实验003:Elasticsearch 集群安装
    ELK学习实验002:Elasticsearch介绍及单机安装
    ELK学习实验001:Elastic Stack简介
    Eclipse 笔记
    自动
    Kali 无线网络
    安全和匿名
    Java 异常处理
    Java 构造结构私有化
  • 原文地址:https://www.cnblogs.com/wenjiangtao/p/10544385.html
Copyright © 2011-2022 走看看