歌词切片方式

'''
3.歌词解析器
1.把歌词进行解析切片处理,把时间转成对应的浮点数
2.使用字典将时间与歌词进行存储{时间:歌词}
3.循环自动打印歌词【结束循环的条件,key为None的时候】
'''
import  timemusicLrc = '''[00:03.50]传奇
[00:19.10]作词:刘兵 作曲:李健
[00:20.60]演唱:王菲
[00:26.60]
[04:40.75][02:39.90][00:36.25]只是因为在人群中多看了你一眼
[04:49.00]
[02:47.44][00:43.69]再也没能忘掉你容颜
[02:54.83][00:51.24]梦想着偶然能有一天再相见
[03:02.32][00:58.75]从此我开始孤单思念
[03:08.15][01:04.30]
[03:09.35][01:05.50]想你时你在天边
[03:16.90][01:13.13]想你时你在眼前
[03:24.42][01:20.92]想你时你在脑海
[03:31.85][01:28.44]想你时你在心田
[03:38.67][01:35.05]
[04:09.96][03:39.87][01:36.25]宁愿相信我们前世有约
[04:16.37][03:46.38][01:42.47]今生的爱情故事 不会再改变
[04:24.82][03:54.83][01:51.18]宁愿用这一生等你发现
[04:31.38][04:01.40][01:57.43]我一直在你身旁 从未走远
[04:39.55][04:09.00][02:07.85]'''
musicDict = {}  #存储时间与对应歌词
musicLrc =  musicLrc.strip()  #去除歌词前后的空白符
# print(musicLrc)
musicLine = musicLrc.splitlines() #按行切片处理
#[04:31.38][04:01.40][01:57.43]我一直在你身旁 从未走远
print(musicLine)
#'[00:03.50]传奇'  二次切片
for line in musicLine:#去除前后的空白符,按"]"来进行切片lineList = line.strip().split("]")# print(lineList)#[04:01.40  时间# print(lineList[-1])  #歌词for i in range(len(lineList)-1): #遍历除歌词外所有的时间字符串# lineList[i][1:] 取出时间字符串并且去掉前面的"["tList = lineList[i][1:].split(":")  #得到分钟与秒,字符串类型print(tList)timeF = float(tList[0])*60 + float(tList[1]) #转为float的时间musicDict[timeF] = lineList[-1]  #将歌词与对应的时间进行存储timeList = list(musicDict) #获取到所有时间节点
timeList.sort()  #进行排序,升序for index in range(len(timeList)):if index > 0:time.sleep((timeList[index]-timeList[index-1]))else:time.sleep(timeList[0] )print(musicDict.get(timeList[index])) #打印歌词

定义函数方式,将以上内容封装成函数

import timedef  getMusicDict(musicLrc):musicDict = {}  #存储时间与对应歌词musicLrc =  musicLrc.strip()  #去除歌词前后的空白符# print(musicLrc)musicLine = musicLrc.splitlines() #按行切片处理#[04:31.38][04:01.40][01:57.43]我一直在你身旁 从未走远#print(musicLine)#'[00:03.50]传奇'  二次切片for line in musicLine:#去除前后的空白符,按"]"来进行切片lineList = line.strip().split("]")# print(lineList)#[04:01.40  时间# print(lineList[-1])  #歌词for i in range(len(lineList)-1): #遍历除歌词外所有的时间字符串# lineList[i][1:] 取出时间字符串并且去掉前面的"["tList = lineList[i][1:].split(":")  #得到分钟与秒,字符串类型#print(tList)     #打印时间timeF = float(tList[0])*60 + float(tList[1]) #转为float的时间musicDict[timeF] = lineList[-1]  #将歌词与对应的时间进行存储return musicDictdef printMusicLrc(musicDict):timeList = list(musicDict) #获取到所有时间节点timeList.sort()  #进行排序,升序for index in range(len(timeList)):if index > 0:time.sleep(timeList[index]-timeList[index-1])else:time.sleep(timeList[0] )print(musicDict.get(timeList[index])) #打印歌词musicLrc = '''[00:03.50]传奇
[00:19.10]作词:刘兵 作曲:李健
[00:20.60]演唱:王菲
[00:26.60]
[04:40.75][02:39.90][00:36.25]只是因为在人群中多看了你一眼
[04:49.00]
[02:47.44][00:43.69]再也没能忘掉你容颜
[02:54.83][00:51.24]梦想着偶然能有一天再相见
[03:02.32][00:58.75]从此我开始孤单思念
[03:08.15][01:04.30]
[03:09.35][01:05.50]想你时你在天边
[03:16.90][01:13.13]想你时你在眼前
[03:24.42][01:20.92]想你时你在脑海
[03:31.85][01:28.44]想你时你在心田
[03:38.67][01:35.05]
[04:09.96][03:39.87][01:36.25]宁愿相信我们前世有约
[04:16.37][03:46.38][01:42.47]今生的爱情故事 不会再改变
[04:24.82][03:54.83][01:51.18]宁愿用这一生等你发现
[04:31.38][04:01.40][01:57.43]我一直在你身旁 从未走远
[04:39.55][04:09.00][02:07.85]
'''musicDict = getMusicDict(musicLrc)
printMusicLrc(musicDict)

python写歌词解析器 王菲-传奇相关推荐

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

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

  2. python歌词解析器

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

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

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

  4. Go语言写的解析器(支持json,linq,sql,net,http等)

    Monkey程序语言 Monkey v2.0版本已发布. monkey v2.0 增加了如下内容: 新增 short arrow(->)支持(类似C#的lambda表达式) 增加 列表推导和哈希 ...

  5. 【kimol君的无聊小发明】—用python写图片下载器

    [kimol君的无聊小发明]-用python写图片下载器 前言 一.单线程版 二.多线程版 写在最后 Tip:本文仅供学习与参考,且勿用作不法用途~ 前言 某个夜深人静的夜晚,我打开了自己的文件夹,发 ...

  6. [open source]Lrc歌词解析器发布

    Lrc歌词解析器发布 最近一段时间专心学习英语,主要是想提高听说能力.从网上下载了<走遍美国>的mp3来听,比较简单,基本上可以听懂.偶尔遇到一个句子比较生僻,我想重新听一遍,我的意思是仅 ...

  7. python的网页解析器_网页解析器(BeautifulSoup)-- Python

    分享一下关于 Python的网页解析器(BeautifulSoup) BeautifulSoup解析器 为了实现解析器,可以选择使用正则表达式.html.parser.BeautifulSoup.lx ...

  8. 【kimol君的无聊小发明】—用python写论文下载器

    [kimol君的无聊小发明]-用python写论文下载器 前言 一.代码分析 1. 搜索论文 2. 下载论文 二.完整代码 写在最后 前言 某个夜深人静的夜晚,夜微凉风微扬,月光照进我的书房~ 当我打 ...

  9. 【kimol君的无聊小发明】—用python写论文下载器(图形化界面)

    [kimol君的无聊小发明]-用python写论文下载器(图形化界面) 前言 一.使用说明 二.代码分析 1. 功能函数 2. 回调函数 3. 线程生成函数 4. 效果展示 写在最后 前言 某个夜深人 ...

  10. 【kimol君的无聊小发明】—用python写视频下载器

    [kimol君的无聊小发明]-用python写视频下载器 前言 一.爬虫分析 1.视频搜索 2.视频下载 二.我的代码 写在最后 Tip:本文仅供学习与参考,且勿用作不法用途~ 前言 某个夜深人静的夜 ...

最新文章

  1. Gps高程拟合matlab代码,几种GPS高程拟合方法分析与比较.doc
  2. 美国-5大牛校--8条小牛--14好校--18很不错的大学
  3. 将图片转换成16进制的代码
  4. 本地项目上传到gitlab上
  5. 智能设备破解的那些事儿
  6. android spp协议,Android蓝牙开发SPP协议通信
  7. svn提示没有设置冲突_svn代码冲突,不能提交的解决方法
  8. 论文阅读笔记(一)——DESCENDING THROUGH A CROWDED VALLEY—BENCHMARKING DEEP LEARNING OPTIMIZERS
  9. java 启动resin,Resin 启动时报错!解决方法
  10. 微信小程序 满意度调查问卷
  11. 【Linux】rm -rf 删除命令
  12. 最新论文阅读(17)--Pyramidal RoR for Image Classification
  13. Could not find an open hard disk with UUID {57bbe8fe-8b4f-4a0d-aef4-1291b23d2bef}. 返回 代码: VBOX_E_OBJ
  14. 字节跳动-飞书视频-测试开发面试题
  15. 利用dns特性把普通域用户提升到域管理员权限
  16. 使用print.js进行分页打印
  17. python伪原创工具开发_在线伪原创工具www.bolewei.com的开发过程
  18. c语言——常见占位符(格式说明)
  19. 无需域名实现frp多端口内网穿透
  20. C、C++、JAVA

热门文章

  1. Python爬虫-爬取开心网主页(有登录界面-利用cookie)
  2. 祝贺光环2014年6月28日PMP考试通过率90.28%
  3. 街头卖艺里的故事,你还会相信吗?
  4. svn process exited with error code: 1
  5. 第八章:加载Maya2011模型
  6. 安徽农业大学计算机考研分数线,安徽农业大学考研录取分数线
  7. 【调参07】不平衡分类问题中分类权重计算与设置
  8. web前端期末大作业 html+css+javascript网页设计实例 企业网站制作——星利源商贸物流有限公司(毕业设计)
  9. I Irrational Division
  10. 计算机中模拟和数字信号,模拟信号和数字信号的区别是什么