Python 解析歌词(输入多少秒时,打印对应歌词)

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]"""

lrcDict = {} musicLrc_list = musicLrc.splitlines() # 按行切割,获得以每一行为元素的列表 #print(musicLrc_list) for lrcline in musicLrc_list: # 遍历以每一行为元素的列表 lrcline_list = lrcline.split("]") # 以"]"为分隔符,进行切割。分割出来时间和歌词-->['[00:03.50', '传奇'] #print(lrcline_list) for a in range(len(lrcline_list)-1): # 只遍历时间 timeStr = lrcline_list[a][1:] # 提取时间字符串 #print(timeStr) timelrc = timeStr.split(":") # 将时间字符串以":"切割 t = float(timelrc[0]) * 60 + float(timelrc[1]) # 换算成float总和,总共多少秒 #print(t) lrcDict[t] = lrcline_list[-1] # 将key-value 添加到字典 print(lrcDict) keylrc = [] for key in lrcDict.keys(): # 提取字典中的key,并组成有序的列表 keylrc.append(key) keylrc.sort() #print(keylrc) # 根据用户输入的时间,去除对应的歌词,此处写为死循环 while 1: getTime = float(input("请输入一个时间:")) for n in range(len(keylrc)-1): # 遍历key中的时间进行对比 tempTime = keylrc[n] if getTime < tempTime: break if n == 0: print("时间太短") else: print(lrcDict[keylrc[n-1]])

 

posted @ 2018-12-22 15:36  lu11  阅读(386)  评论(0编辑  收藏  举报