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] """ """ 目的:将歌词(多行的字符串)解析出来,按照时间的顺序在控制台打印出来 思路:1.利用splitlines()函数把歌词按行分割成一个列表list1 2.再用split(']')把list1中的元素分割然后添加到列表list2 3.然后把时间和歌词分割成一个字典,时间为key,歌词为value 4.然后利用time.clock()提取时间,然后整理出分,秒和毫秒,整理成time 5.遍历字典,匹配time和字典中的key,匹配成功就打印出相应的歌词 """ import time list1 = musicLrc.splitlines() list2 = [] dict1 = {} flag_time = 0 num_count = 0 #将list1中的每一个元素按照"]"分割,然后添加到list2 for i in list1: list2.append(i.split("]")) #遍历list2,将每一个元素整理成列表 for num in list2: length = len(num) for i in range(0,length-1): dict1[num[i]]=num[-1] count = len(dict1) #获取程序运行的时间,作为歌词显示的开始时间 starTime = time.clock() while num_count < count: #获取程序运行的时间,提取出分,秒和毫秒 endTime = time.clock() time_minu = endTime//60 time_sec = endTime//1%60 time_ms = (endTime*100)%100 strTime = "[%02.0f:%02.0f.%2.0f"%(time_minu,time_sec,time_ms) if flag_time!= strTime: flag_time = strTime for key_1 in dict1.keys(): if key_1 == strTime: print(key_1+"]"+dict1[key_1]) num_count += 1 break if num_count == count: break