使用音乐标签软件对FLAC格式的英文歌曲添加歌词时,自动匹配的歌词的中文和英文是混在一行的。
例如:“[00:07.50]Some days 很多时候”
想要让播放器在播放时更加美观的双行显示就需要把它改为:
[00:07.50]Some days
[00:07.50]很多时候。
当面对几十首歌曲时一句一句的改动费时费力,于是用Python做了一个小工具,循环自动将一行中英混合歌词分离成英文歌词+中文歌词两行显示,最终结果输出为TXT文档,方便复制,小工具开发的着急,勉强能用,可能还有不少缺陷,附上源码,有需要的可以完善使用。小工具下载地址:https://love-mei.lanzoue.com/iWpSm26lfp4j密码:9bpw
[Python] 纯文本查看 复制代码 import re
from datetime import datetime
def find_chinese_in_english_sentence_include_s(sentence1):
chinese_pattern = re.compile(r'[\u4e00-\u9fa5]+\s+[\u4e00-\u9fa5]*')
matches = chinese_pattern.findall(sentence1)
return ''.join(matches)
def find_chinese_in_english_sentence(sentence2):
chinese_pattern = re.compile(r'[\u4e00-\u9fa5]+')
matches = chinese_pattern.findall(sentence2)
return ''.join(matches)
while 1:
# 修正
sentence = []
while True:
s = input('粘贴后敲敲回车:')
sentence.append(s)
if s == '':
break
lrc = []
for i in sentence:
# 消除片头信息影响
if 'by:' not in i:
if '作词' not in i:
if '作曲' not in i:
# 判断中文是否带有空格并分类执行修正
get_time = i[:10]
chinese_content = find_chinese_in_english_sentence_include_s(i)
if chinese_content == '':
chinese_content = find_chinese_in_english_sentence(i)
# 消除带有时间码的自然空行
if chinese_content == '':
lrc.append(get_time)
else:
lrc.append(i.replace(chinese_content, ''))
lrc.append(get_time + chinese_content)
else:
lrc.append(i.replace(chinese_content, ''))
lrc.append(get_time + chinese_content)
else:
lrc.append(i)
else:
lrc.append(i)
else:
lrc.append(i)
# 获取当前精准时间
now = datetime.now()
# 获取当前时间的时间戳
timestamp = now.timestamp()
# 输出
for lr in lrc:
print(lr)
# 打开文件,以追加模式
with open(str(timestamp) + '_output.txt', 'a') as file:
# 写入内容
file.write(lr + '\n')
附图:原歌词、输出文件和结果
|