Python基礎練習之解析歌詞

2021-08-28 18:36:19 字數 2305 閱讀 7433

歌詞解析:解析成乙個時間戳語句歌詞的形式,封裝函式(根據時間返回歌詞)

s = '''[ti:藍蓮花]

[ar:許巍]

[al:留聲十年絕版青春北京演唱會]

[00:-01.70]藍蓮花

[00:-00.70]演唱:許巍

[00:00.00]

[00:00.70]沒有什麼能夠阻擋

[00:06.01]你對自由的嚮往

[00:11.43]天馬行空的生涯

[00:16.99]你的心了無牽掛

[00:21.20]

[02:11.55][01:50.60][00:22.63]穿過幽暗的歲月

[02:16.93][01:55.60][00:27.81]也曾感到彷徨

[02:22.21][02:01.09][00:33.13]當你低頭的瞬間

[02:27.62][02:06.33][00:38.32]才發覺腳下的路

[02:31.64][02:10.23][00:42.37]

[02:32.97][00:43.79]心中那自由的世界

[02:38.23][00:49.50]如此的清澈高遠

[02:43.30][00:54.31]盛開著永不凋零

[02:47.70][00:58.50]藍蓮花

[02:53.95][03:00.06][01:05.41]'''

# 準備乙個字典,儲存歌曲資訊

song_dc = {}

# 準備乙個字典,儲存歌詞資訊

lrc_dc = {}

# 按照換行,進行切割

ret = s.splitlines()

# 分離歌曲和歌詞

for i in ret:

if i[1].isdecimal():

# 按照']'進行切割

i = i.split(']')

# 提取歌詞資訊

lrc_list = i[-1]

# 提取時間資訊

time_list = i[:-1]

# 遍歷處理時間資訊

for i in time_list:

# 去掉'['

time_str = i[1:]

# 按照':'進行切割

time_info_list = time_str.split(':')

# 提取分鐘

time_min = float(time_info_list[0])

# 提取秒數

time_sec = float(time_info_list[1])

# 合併時間

time = time_min*60 + time_sec

# 儲存到歌詞字典中

lrc_dc[time] = lrc_list

else:

# 去掉兩邊的

i = i[1:-1]

# 去掉':'

song_list = i.split(':')

# 儲存到歌曲字典中

if song_list[0] == 'ti':

song_dc['標題'] = song_list[1]

elif song_list[0] == 'ar':

song_dc['藝術家'] = song_list[1]

elif song_list[0] == 'al':

song_dc['**'] = song_list[1]

# 提取歌詞中所有的鍵

time_info = list(lrc_dc)

# 排序

time_info.sort(reverse=true)

# 根據時間返回歌詞

def get_lrc_by_time(t):

for i in time_info:

if i <= t:

time1=i

break

return lrc_dc[time1]

# 此處向下都是測試**

import time

import os

t = 0

last_lrc = none

while true:

lrc = get_lrc_by_time(t)

if last_lrc != lrc:

# 清除原來的顯示

os.system('cls')

last_lrc = lrc

for s in song_dc:

print(s, song_dc[s])

print(lrc)

t += 0.5

time.sleep(0.5)

python小練習 歌詞解析

歡迎關注,敬請點讚!解析成乙個時間對應一句歌詞的形式,封裝函式 根據時間返回歌詞 s ti 藍蓮花 al 留聲十年絕版青春北京演唱會藍蓮花 00 00.70 演唱 許巍 00 00.00 沒有什麼能夠阻擋 00 06.01 你對自由的嚮往 00 11.43 天馬行空的生涯 00 16.99 你的心了...

用 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 再也沒能忘掉你容...

python歌詞解析器

今天掌握到了歌詞解析器的python基礎語法 實現,個人覺得挺有意思,便展示出來分享分享 注 展示結果為每過相應的時間,輸出端列印相應的歌詞 import time 匯入time模組 song 00 03.50 傳奇 00 19.10 作詞 劉兵 作曲 李健 00 20.60 演唱 王菲 00 26...