用 python 解析歌词

# 2.解析歌词
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]"""


# 如有bug ,请大神们原凉,因为我也才学了二个星期python
# 思路:
# 1.创建一个空的字典,用来保存歌词
# 2.拆分一行一行的字符(歌词)
# 3.分开时间和歌词,,key-时间,value-歌词
# 目的: 把歌词解析出来,  创建一个 字典 放进歌词,key=时间,value = 歌词
# 创建一个空的字典,用来放入时间和歌词
dict_music_data = {}
# 拆分一行为一个元素的列表
list_line = musicLrc.splitlines()
# print(list_line)
# 把每一行元素遍历出来
for i in list_line:
    # print(i)
    # 在这里以 ] 这个字符拆分切割 
    list_line1 = i.split("]")
    # print(list_line1)
    # 遍历出来后的元素的最后一个索引对应的就是歌词
    value = list_line1[-1]
    # print(value)
    # 遍历出时间
    for j in range(len(list_line1) - 1):
        key_music = list_line1[j][1:]
        # print(key_music)
        # 遍历出来的时间 再以 : 号拆分切割
        key_time = key_music.split(":")
        # print(key_time)
        # 得到每个时间的总秒数
        music_time = float(key_time[0]) * 60 + float(key_time[1])
        # print(music_time)
        key = music_time
        # 按时间的key 把歌词value写进字典
        dict_music_data[key] = value
# print(dict_music_data)
# 创建空列表 准备把字典的key写进去
list_music = []
# 遍历出key后追加到list_music列表中去
for key1 in dict_music_data.keys():
    list_music.append(key1)
# print(list_music)
# 把列表进行升序处理
list_music.sort()
# print(list_music)
# 遍历出来的key 放到字典一 一输出歌词
for key in list_music:
    print(dict_music_data[key])

你可能感兴趣的:(python基础)