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

2021-09-24 10:10:48 字數 1790 閱讀 2172

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

import time

musicdict = {}

# 以換行切割musiclrc

list1 = musiclrc.splitlines()

# 迴圈遍歷切割出來的列表

for each in list1:

# 將列表中的資料再次以"]"切割,列表的右邊是歌詞直接儲存到word

word = each.split("]")[-1]

# 切割後的列表左邊是時間列表,存入time1中

time1 = each.split("]")[:-1]

for t in time1:

# 遍歷左邊時間表【'[03:38.67''[01:35.05'】,消除"[",並且以:切割時間

time2 = t[1:].split(":")

# 將時間數位化,方便後面以key排序

timesum = float(time2[0])*60 + float(time2[1])

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

musicdict[timesum] = word

# print(musicdict)

# 將字典中的key,轉化為列表,方便用列表的sort()排序

list2 = list(musicdict.keys())

# 用sort()將時間按照從小到大順序排列

list2.sort()

# 將歌曲按照時間的順序依次列印出來

for i in range(len(list2)):

if i == 0:

# 歌詞顯示太慢,這裡以十倍的速度列印

# 第一次休眠就是對應的key

time.sleep(list2[0]/10)

else:

# 第二次開始休眠就是對應的key減去上次的時間

time.sleep((list2[i]-list2[i-1])/10)

# 列印歌詞

print(musicdict[list2[i]])

總結:python中很多語句可以疊加,很多單個會用,但是綜合起來用,可能有點懵逼,所以需要多加練習。

python歌詞解析器

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

python歌詞解析器函式封裝

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

Python基礎練習之解析歌詞

歌詞解析 解析成乙個時間戳語句歌詞的形式,封裝函式 根據時間返回歌詞 s ti 藍蓮花 ar 許巍 al 留聲十年絕版青春北京演唱會 00 01.70 藍蓮花 00 00.70 演唱 許巍 00 00.00 00 00.70 沒有什麼能夠阻擋 00 06.01 你對自由的嚮往 00 11.43 天馬...