python 歌词解析
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 歌词解析相关推荐
- Python 歌词解析器 音乐与歌词同步播放
python 歌词解析器 前言 歌词解析器,顾名思义就是在播放歌曲的时候,音乐播放器放到那一句就显示对应的歌词. *在 python中歌词解析器并不难写,运用 time模块来编写歌词解析器, time ...
- python歌词解析器
python实现歌词解析器 今天掌握到了歌词解析器的python基础语法代码实现,个人觉得挺有意思,便展示出来分享分享 注:展示结果为每过相应的时间,输出端打印相应的歌词 import time #导 ...
- python 歌词解析器传奇 歌词音乐同时输出
''' 歌词解析器:把歌词按照时间节点进行显示. 1.把歌词进行解析切片处理,把时间转成对应的浮点数 2.使用字典将时间与歌词进行存储{时间:歌词} 3.循环自动打印歌词[结束循环的条件,key为No ...
- 学习笔记——Day1——Python歌词解析
具体思路 1.提取歌词的文本文件 2.将文件中的时间点提取出来,并将歌词分成多个字符串保存下来--构成字典,其中时间为关键字key.歌词为value. 3.形成字典后就可以利用其中的关系进行运用 可以 ...
- Python歌词解析器(加音频播放)
import pygame import timestrLrc = '''[00:01.49]动力火车 - 当 [00:20.53]当 <还珠格格>主题曲(动力火车) [00:21.89] ...
- python歌词解析_python 将歌词解析封装成类,要求:提供一个方法(根据时间返回歌-站长资讯中心...
自己写的感觉 有更好方案的大佬可以说一下 import bisect class Lrc(): def __init__(self, sec, lrc): self.sec = sec self.lr ...
- Python中歌词解析
分析: 1.对于歌词解析这个事情,本质上就是对字符串进行切片. 2.首先要讲时间与歌词分开 3.将时间的24时格式转为数字形式,作为字典的key,而歌词作为字典的value 可以直接使用:dict[k ...
- 了解女友的心还不如了解Python之在Python中解析和修改XML
2021年12月15日 10:14 · 阅读 30 摘要: 工作中我们时常需要解析用不同语言编写的数据.Python 提供了许多库来解析或拆分用其他语言编写的数据.在这篇 Python XML 解析 ...
- python列表解析的新方法
python 列表解析我感觉是python非常灵活的一个地方,一开始接触它的时候,特别是之前学过其它的语言, 你会感觉很不习惯,怎么看怎么不对劲,老是觉的哪个地方怪怪的,这就是列表解析的魔力所在. p ...
最新文章
- C++中数组访问操作符的重载
- 【内网安全】域横向CobalStrikeSPNRDP
- window下eclipse +cdt+cygwin做C,C++开发环境搭建 (转自:http://blog.csdn.net/thinkandchange/article/details/7935)
- 本期课程已满,欢迎关注后续期次 | 临床基因组学数据分析实战助力解析Case,快速发表文章...
- java初学者适用项目_有哪些适合java初学者的项目?
- WordPress主题LensNews模板源码,2.2版本多功能新闻积分商城主题
- 5-14卷积神经网添加正则化
- 信息系统项目管理01——信息化和信息系统
- 如何制作一款HTML5 RPG游戏引擎——第一篇,地图类的实现
- C#中常用的文件操作方法
- 操作系统 生产者消费者问题解释
- 关于日期 显示当前日期
- 随机效应估算与固定效应估算_纯电动汽车的电池价格,可以怎么估算?
- linux Sprintf中文乱码,Linux下printf、fprintf、sprintf的区别
- 根据城市的名称获取省份的名称
- BiMap(HashBiMap,EnumBiMap,ImmutableBiMap)实战
- Matlab高光谱遥感数据处理与混合像元分解实践技术
- 数据结构与算法学习--线性
- DWR中文文档v0.9 03
- 高清视频会议终端市场现状及未来发展趋势分析
热门文章
- 【Android 插件化】VirtualApp 编译运行 ( VirtualApp 简介 | 配置 VirtualApp 编译环境 | 编译运行 VirtualApp 官方示例 )
- vue-spa单页应用程序
- 西邮Linux兴趣小组2017-2019纳新题题解
- ping 丢包 网络摄像头_网络摄像机频繁掉线的处理方法
- 计算机ppt制作培训心得,中小学电脑制作活动培训心得体会范文
- 新安江模型Python实现 — — 代码与建模
- C++/OpenGL 入门(18):读取obj文件并贴图
- dz调用图片PHP写法,DZ论坛手机版的图片能不能使用静态调用?
- 财务RPA是如何帮助CFO成为优质管理者
- java实现电脑远程开机(网络唤醒)