lrc_str = """[00:01.70]蓝莲花
[00:00.70]演唱:许巍
[00:00.00]
[00:00.70]没有什么能够阻挡
[00:06.01]你对自由的向往
[00:11.43]天马行空的生涯
[00:16.99]你的心了无牵挂
[00:21.20]
[02:11.55][01:50.60][00:22.63]穿过幽暗的岁月
[02:16.93][01:55.60][00:27.81]也曾感到彷徨
[02:22.21][02:01.09][00:33.13]当你低头的瞬间
[02:27.62][02:06.33][00:38.32]才发觉脚下的路
[02:31.64][02:10.23][00:42.37]
[02:32.97][00:43.79]心中那自由的世界
[02:38.23][00:49.50]如此的清澈高远
[02:43.30][00:54.31]盛开着永不凋零
[02:47.70][00:58.50]蓝莲花
[02:53.95][03:00.06][01:05.41]
"""import time# 创建一个空字典,用于接收时间做key,歌词做为value
lrc_dict = {}# 先按行把歌词切割成一行行的字符串
lrc_str_list = lrc_str.splitlines()
# 再一行行处理切割后的歌词,歌词的格式是:
# 前面是时间,后面是歌词,这样可以用字典来存储,
# 时间做为键,歌词做为值,形成了健—值 对的格式
# 有几个时间格式,就有几个键值对
# 输入一个时间和键来比较,然后通过键来查找值,即歌词
for lrc_line in lrc_str_list:# 根据有多少个时间就循环多少次# [02:11.55][01:50.60][00:22.63]穿过幽暗的岁月# 根据上面一行字符串,怎么来判断需要循环多少次?# 可以用 ”]“ 来做判断 count()是根据()里的字符串来判断有多少个数量run_lrc = lrc_line.split("]")# len(run_lrc) 表示截取的字符串的个数# range(len -1) 表示从下标0开始for index in range(len(run_lrc) - 1):# 提取出时间字符串 run_lrc[index]表示用下标来提取字符串# [index][1:] 表示从第2个字符开始截取后面所有的字符time_str = run_lrc[index][1:]# 找出键# 把时间当做key,run_lrc[-1]表示每行最后一段字符串,做为值# 需要把时间 01:50.60 换成小数表示# 还是可以用截取方法,冒号前面乘以60,冒号后面转成float,再相加lrc_list = time_str.split(":")str_time = float(lrc_list[0]) * 60 + float(lrc_list[1])# 找出值 就是 run_lrc[-1]# 把键 和 值 存到 lrc_dict 这个字典里lrc_dict[str_time] = run_lrc[-1]# 需求:输入时间就能提取出歌词# 创建一个空列表,用于存取时间
allTimeList = []
# 从字典中取出key
# allTimeList = list(sorted(lrc_dict.keys()))
for t in lrc_dict:allTimeList.append(t)
allTimeList.sort()
print(allTimeList)get_time = 0
while True:# get_time = float(input("请输入一个时间(可以是小数):"))# 把上面字典里的key键放到一个列表里,按升序来排# 二分查找算法# 用输入的数字来和这列表的数字来比较,如果小于输入的数字就向前查找# 一直找到比他大的数字,而大的数字前一位就是需要查找的# 把找到的时间当做key,再用key来查找值# 遍历下标 放到n列表里for n in range(len(allTimeList)):# 设置一个临时时间tempTime = allTimeList[n]# 用这个临时时间来估判断if get_time < tempTime:break# if get_time == 0:#     print("您输入的时间太小")# else:#     print(lrc_dict[allTimeList[n - 1]])irc = lrc_dict.get(allTimeList[n-1])if irc == None:passelse:print(irc)time.sleep(0.8)get_time += 1

python 歌词解析相关推荐

  1. Python 歌词解析器 音乐与歌词同步播放

    python 歌词解析器 前言 歌词解析器,顾名思义就是在播放歌曲的时候,音乐播放器放到那一句就显示对应的歌词. *在 python中歌词解析器并不难写,运用 time模块来编写歌词解析器, time ...

  2. python歌词解析器

    python实现歌词解析器 今天掌握到了歌词解析器的python基础语法代码实现,个人觉得挺有意思,便展示出来分享分享 注:展示结果为每过相应的时间,输出端打印相应的歌词 import time #导 ...

  3. python 歌词解析器传奇 歌词音乐同时输出

    ''' 歌词解析器:把歌词按照时间节点进行显示. 1.把歌词进行解析切片处理,把时间转成对应的浮点数 2.使用字典将时间与歌词进行存储{时间:歌词} 3.循环自动打印歌词[结束循环的条件,key为No ...

  4. 学习笔记——Day1——Python歌词解析

    具体思路 1.提取歌词的文本文件 2.将文件中的时间点提取出来,并将歌词分成多个字符串保存下来--构成字典,其中时间为关键字key.歌词为value. 3.形成字典后就可以利用其中的关系进行运用 可以 ...

  5. Python歌词解析器(加音频播放)

    import pygame import timestrLrc = '''[00:01.49]动力火车 - 当 [00:20.53]当 <还珠格格>主题曲(动力火车) [00:21.89] ...

  6. python歌词解析_python 将歌词解析封装成类,要求:提供一个方法(根据时间返回歌-站长资讯中心...

    自己写的感觉 有更好方案的大佬可以说一下 import bisect class Lrc(): def __init__(self, sec, lrc): self.sec = sec self.lr ...

  7. Python中歌词解析

    分析: 1.对于歌词解析这个事情,本质上就是对字符串进行切片. 2.首先要讲时间与歌词分开 3.将时间的24时格式转为数字形式,作为字典的key,而歌词作为字典的value 可以直接使用:dict[k ...

  8. 了解女友的心还不如了解Python之在Python中解析和修改XML

    2021年12月15日 10:14 ·  阅读 30 摘要: 工作中我们时常需要解析用不同语言编写的数据.Python 提供了许多库来解析或拆分用其他语言编写的数据.在这篇 Python XML 解析 ...

  9. python列表解析的新方法

    python 列表解析我感觉是python非常灵活的一个地方,一开始接触它的时候,特别是之前学过其它的语言, 你会感觉很不习惯,怎么看怎么不对劲,老是觉的哪个地方怪怪的,这就是列表解析的魔力所在. p ...

最新文章

  1. C++中数组访问操作符的重载
  2. 【内网安全】域横向CobalStrikeSPNRDP
  3. window下eclipse +cdt+cygwin做C,C++开发环境搭建 (转自:http://blog.csdn.net/thinkandchange/article/details/7935)
  4. 本期课程已满,欢迎关注后续期次 | 临床基因组学数据分析实战助力解析Case,快速发表文章...
  5. java初学者适用项目_有哪些适合java初学者的项目?
  6. WordPress主题LensNews模板源码,2.2版本多功能新闻积分商城主题
  7. 5-14卷积神经网添加正则化
  8. 信息系统项目管理01——信息化和信息系统
  9. 如何制作一款HTML5 RPG游戏引擎——第一篇,地图类的实现
  10. C#中常用的文件操作方法
  11. 操作系统 生产者消费者问题解释
  12. 关于日期 显示当前日期
  13. 随机效应估算与固定效应估算_纯电动汽车的电池价格,可以怎么估算?
  14. linux Sprintf中文乱码,Linux下printf、fprintf、sprintf的区别
  15. 根据城市的名称获取省份的名称
  16. BiMap(HashBiMap,EnumBiMap,ImmutableBiMap)实战
  17. Matlab高光谱遥感数据处理与混合像元分解实践技术
  18. 数据结构与算法学习--线性
  19. DWR中文文档v0.9 03
  20. 高清视频会议终端市场现状及未来发展趋势分析

热门文章

  1. 【Android 插件化】VirtualApp 编译运行 ( VirtualApp 简介 | 配置 VirtualApp 编译环境 | 编译运行 VirtualApp 官方示例 )
  2. vue-spa单页应用程序
  3. 西邮Linux兴趣小组2017-2019纳新题题解
  4. ping 丢包 网络摄像头_网络摄像机频繁掉线的处理方法
  5. 计算机ppt制作培训心得,中小学电脑制作活动培训心得体会范文
  6. 新安江模型Python实现 — — 代码与建模
  7. C++/OpenGL 入门(18):读取obj文件并贴图
  8. dz调用图片PHP写法,DZ论坛手机版的图片能不能使用静态调用?
  9. 财务RPA是如何帮助CFO成为优质管理者
  10. java实现电脑远程开机(网络唤醒)