欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python代码解析LRC歌词文件

程序员文章站 2022-06-21 15:07:56
...

Python代码解析LRC歌词文件

需求分析

"""
把lrc文件里面的歌词按照时间顺序读取

需求分析:
	1.怎么打开lrc文件--->open
	2.读取文件内容,存储下来列表和字典
	3.解析歌词([01:40.00][00:16.00]今天我寒夜里看雪飘过 )
		3.1去除[]
		3.2提取时间
		3.3提取歌词
		3.4把时间和歌词存入字典
	4.显示解析后的歌词
		03:18.00 原谅我这一生不羁放纵爱*
		03:24.00 也会怕有一天会跌倒
		03:29.00 被弃了理想谁人都可以
"""

案例代码

# 打开文件
file = open("海阔天空.lrc", "r", encoding="utf-8")
# 读取文件全部内容
lrc_str = file.read()
# print(lrc_str)
# print(type(lrc_str))
# 分割字符串,发得到一个列表
lrc_list = lrc_str.splitlines()
# print(lrc_list)
# '[01:48.00],[00:24.00],怀著冷却了的心窝飘远方 '
# 创建字典,存放歌词和时间,key表示时间,value表示歌词
lrc_dict = {}
# 遍历所有元素,干掉方括号
for i in lrc_list:
    # print(i)
    # i.replace("[", "]")
    # print(i.replace("[", "]").split("]"))
    # 取出方括号并切割歌词字符串
    lrc_word = i.replace("[", "]").strip().split("]")
    for j in range(len(lrc_word) - 1):
        if lrc_word[j]:
            # print(lrc_word[j], end=",")
            lrc_dict[lrc_word[j]] = lrc_word[-1]
# 遍历字典,对字典的key进行排序,
for key in sorted(lrc_dict.keys()):
    print(key, lrc_dict[key])

file.close()

歌词文件:可以使用格式为[.lrc]的歌词文件

[ti: 海阔天空]
[ar:黄家驹]
[al:乐与怒]
[by:mp3.50004.com]
[00:00.00]Beyond:海阔天空 
[01:40.00][00:16.00]今天我寒夜里看雪飘过 
[01:48.00][00:24.00]怀著冷却了的心窝飘远方 
[01:53.00][00:29.00]风雨里追赶 
[01:57.00][00:33.00]雾里分不清影踪 
[02:00.00][00:36.00]天空海阔你与我 
[02:03.00][00:39.00]可会变(谁没在变) 

[00:42.00]多少次迎著冷眼与嘲笑 
[00:49.00]从没有放弃过心中的理想 
[00:54.00]一刹那恍惚 
[00:58.00]若有所失的感觉 
[01:01.00]不知不觉已变淡 
[01:04.00]心里爱(谁明白我) 

[03:56.00][03:18.00][02:06.00][01:07.00]原谅我这一生不羁放纵爱* 
[04:01.00][03:24.00][02:12.00][01:13.00]也会怕有一天会跌倒 
[04:06.00][03:44.00][03:29.00][02:19.00][01:20.00]被弃了理想谁人都可以 
[04:14.00][03:49.00][03:37.00][02:26.00][01:26.00]那会怕有一天只你共我 

[03:05.00]仍然*自我 
[03:10.00]永远高唱我歌
[03:13.00]走遍千里