Posts Tagged ‘Google Code’
啊哈,逃OB之后。。。
Er…
上次在OB课上走神,推导出来那个求曲线长度的弧微分公式
这次OB直接逃掉了
(后来悲剧的发现老师亲自检查考勤,然后悲剧掉了)
换来的成果是一个把.lrc的歌词文件转换为.srt的字幕的Python脚本
性感的运用了可爱的2.6之后的新特性,可以在datetime.strptime()中使用%f
然后顺便安装了一个Python3以及在Google Code上开了一个新的Project
http://code.google.com/p/pylrc2srt/
之所以把那么一个简单的脚本放上去,是因为一开始我打算直接找一个现成的
后来发现*nix下没有,而一个C++的代码还编译不了
最最忧郁的是居然Google Code有一个项目了,但是除了svn中的一些C#代码,一个可以用的Download都没
于是。。。
其实这个行为本身并不怎么靠谱
因为于.srt不同,.lrc文件并没有保存一句话结尾时间这个数据
所以只能设定一个间隔,读取开始时间和下一句的开始时间,并把下一句的开始时间减去这个间隔作为结尾时间
./lrc2srt.py filename interval
#!/usr/bin/env python3
import sys,re
from datetime import datetime
p = re.compile("[0-9]+")
filename = sys.argv[1]
interval = str(sys.argv[2])
lrc = open(filename)
listtime = []
listlyrics = []
for line in lrc.readlines():
if p.match(line.split(":")[0].replace("[","")):
listtime.append("00:" + line.split("]")[0].replace("[","")+"0")
listlyrics.append(line.split("]")[1])
#read file and delete empty&useless lines
o=""
i=0
while i " +\
"0" + (str(datetime.strptime(listtime[i+1],"%H:%M:%S.%f")-datetime.strptime(interval,"%f"))).replace("000","").replace(".",",")+\
"\n"+listlyrics[i]+\
"\n"
i=i+1
o = o + str(i+1) + "\n" + listtime[-1].replace(".",",")+ " --> " + "\n" + listlyrics[-1] + "\n"
srt = open(filename.replace("lrc","srt"),"w")
srt.write(o)