用python写个歌词解析程序

**

用python写个歌词解析程序*

    近来在学习python,在基础语法知识运用上有一个经典的题目,那就是歌词解析,让歌词随着歌曲节奏慢慢播放,这其中会运用到列表、字符以及他们的组合与切片,另加上字典的运用,下面附上我的代码供大家参考:
import time
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 = {}
# musicLrc.strip() 去除字符前后的空格
# .splitlines() 对字符串按行切分
mList = musicLrc.strip().splitlines()
print(mList)
# 遍历每一行
for line in mList:
    # 对每一行使用"]"来进行切分
    lineList = line.split("]")
    # print(lineList)
    # lineList[-1] 歌词
    # linelist[:-1] 处理所有的时间
    for x in lineList[:-1]:
        # x[1:] 去除时间字符串左边的"["
        # split(":") 对时间字符串使用":"进行切分
        # print(x)
        timelist = x[1:].split(":")
        # print(timelist)
        # 将时间字符串转为浮点型
        timef = float(timelist[0])*60 + float(timelist[-1])
        # print(timef)
        # 将对应的歌词与时间存储到字典
        musicDict[timef] = lineList[-1]
print(musicDict)
# 获取所有key
tList = list(musicDict)
# 对key进行排序
tList.sort()
print(tList)
# 遍历所有key,使用下标进行遍历
for i in range(len(tList)):
    # 判断下标为0
    if i == 0:
       #睡眠
       time.sleep(tList[i]/10)
    else:
        # 获取睡眠的时间差
        time.sleep((tList[i]-tList[i-1])/10)
    # 打印key对应的value
    print(musicDict.get(tList[i]))

你可能感兴趣的:(python)