python歌詞解析器

2021-09-25 08:31:23 字數 1925 閱讀 9009

今天掌握到了歌詞解析器的python基礎語法**實現,個人覺得挺有意思,便展示出來分享分享

注:展示結果為每過相應的時間,輸出端列印相應的歌詞

import time  #匯入time模組

song =

'''[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]

'''#自定義歌詞解析函式

defsong_show

(str):

dict =

#strip函式去除str兩邊空格,splitlines函式將字串str按行進行分割

mylist =

str.strip(

).splitlines(

)#遍歷每一行

for line in mylist:

#將每一行用']'符號進行分割

linelist = line.split(

']')

#遍歷歌詞前的時間資訊

for i in linelist[:-

1]:#將時間資訊去除'[',並以':'進行分割

timelist = i.strip(

'[')

.split(

':')

#將分割後的時間列表整合成浮點數時間

time =

float

(timelist[0]

)*60+

float

(timelist[1]

)#將時間對應的歌詞存入字典中

dict[time]

= linelist[-1

]#將儲存時間的列表timelist進行氣泡排序

timelist =

list

(dict)

timelist.sort(

)#迴圈遍歷,根據前後時間差得到應該停頓的時間

for k in

range

(len

(timelist)):

if k ==0:

time.sleep(timelist[k]/5

)else

: time.sleep(

(timelist[k]

-timelist[k-1]

)/5)

#輸出對應時間上的歌詞資訊

print

(dict.get(timelist[k]))

#呼叫函式

song_show(song)

python歌詞解析器函式封裝

歌詞解析器 把歌詞按照時間節點進行顯示。1.把歌詞進行解析切片處理,把時間轉成對應的浮點數 3.迴圈自動列印歌詞 結束迴圈的條件,key為none的時候 musiclrc 00 03.50 傳奇 00 19.10 作詞 劉兵 作曲 李健 00 20.60 演唱 王菲 00 26.60 04 40.7...

歌詞解析器 用python基礎語句依照時間列印歌詞

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...

使用解析器

使用解析器 使用解析器是非常簡單,可以使用它自己的詞法分析器,但是,用fsyacc.exe 產生的解析器總是要求詞法分析器。在這一小節,我們將討論如何使用自己的詞法分析器,以及與解析器聯合。警告記住f 編譯器不能直接使用.fsl 和 fsy 檔案,需要用fslex.exe 和 fsyacc.exe ...