1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178

"""[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

musicLrcStr = """[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]
"""



'''
dict = {
'04:24.82': '宁愿用这一生等你发现',
'04:24.82': '宁愿用这一生等你发现',
'04:24.82': '宁愿用这一生等你发现',
'04:24.82': '宁愿用这一生等你发现',
}

'''

# 方式一:
'''
d = {}

line_list = musicLrcStr.splitlines()
for line in line_list:
# print(line) # '[03:16.90][01:13.13]想你时你在眼前'
lrc_list = line.split(']')
# print(lrc_list) # ['[03:16.90', '[01:13.13', '想你时你在眼前']

# 歌词内容
content = lrc_list.pop()

for lrc in lrc_list:
# 歌词时间
t = lrc[1:]
# 把歌词时间和歌词内容加入到字典d中
d[t] = content

# print(d)
time_list = list(d.keys())
time_list.sort()
# print(time_list)

for t in time_list:
print(d[t])
time.sleep(1)

'''


'''
list = [
{'time': '04:24.82', 'content': '宁愿用这一生等你发现'},
{'time': '04:24.82', 'content': '宁愿用这一生等你发现'},
{'time': '04:24.82', 'content': '宁愿用这一生等你发现'},
{'time': '04:24.82', 'content': '宁愿用这一生等你发现'},
{'time': '04:24.82', 'content': '宁愿用这一生等你发现'},
]
'''
# 方法二:
l = []

line_list = musicLrcStr.splitlines()
for line in line_list:
lrc_list = line.split(']')

# 歌词内容
content = lrc_list.pop()

for lrc in lrc_list:
# 歌词时间
t = lrc[1:]
# 把歌词时间和歌词内容加入到列表l中
l.append({'time': t, 'content': content})

l.sort(key=lambda x:x['time']) # 按照字典中的time进行升序排列

t = 0
for d in l:

# 按照真实的歌词时间进行打印
t2 = d['time'] # '04:31.38'
i = t2.find(':') # : 的位置
min = int(t2[:i]) # 分钟
sec = float(t2[i+1:]) # 秒
t3 = min*60 + sec # 秒

time.sleep(t3 - t)
print(d['time'], d['content'])

t = t3


# 按照歌词时间,每隔1秒显示下句歌词
# time.sleep(1) # 暂停1秒

'''
# 1, 按行拆分, 得到每一行歌词, 如:lineStr = '[04:40.75][02:39.90][00:36.25]只是因为在人群中多看了你一眼'
# 2, 将每一行歌词按照']'拆分,得到列表,
# 如 lineList = ['[04:40.75', '[02:39.90', '[00:36.25', '只是因为在人群中多看了你一眼']
# 3, 将歌词内容, 和歌词时间分别取出, 可以使用字典来保存歌词时间和对应的歌词内容
# lrcDict = {}
# 歌词内容 lrcContent = lineList.pop() # '只是因为在人群中多看了你一眼'
# lineList变成: ['[04:40.75', '[02:39.90', '[00:36.25']
# 歌词时间 for lrcTime in lineList:
# lrcTime2 = lrcTime[1:]
# lrcDict[lrcTime2] = lrcContent
#
# # 歌词内容就会按以下方式存储
# # lrcDict = {'04:40.75': '只是因为在人群中多看了你一眼',
# '02:39.90': '只是因为在人群中多看了你一眼',
# '00:36.25': '只是因为在人群中多看了你一眼'
# }
#
# 注意歌词时间需要转换成秒,如:lrcDict[lrcTime] = lrcContent
#
# 4, 将lrcDict中的lrcTime全部取出存放在列表中,将列表升序排序,
# 5,最后遍历列表, 每隔1秒 按照歌词的时间取出对应的歌词内容
'''

# 先将所有的时间和歌词放在列表中