Python应用:计时器"时:分:秒"字符串与秒数相互转换
时间:2007-03-31 来源:wibrst
在调整字幕时间时发现不是等间隔时间偏移,而是间隔呈线性增加。真不知这帮做字幕的人怎么搞的,不会是播放器计算时间偏移差错吧?
不管他了,如果要修改字幕时间,首先要有一对方便地进行"HH:MM:SS"格式跟计时器秒数相互转换的函数。于是就写了一个模块:
不管他了,如果要修改字幕时间,首先要有一对方便地进行"HH:MM:SS"格式跟计时器秒数相互转换的函数。于是就写了一个模块:
# timeItv.py
# encoding:gb2312
import sys,re
# 将计时器"时:分:秒"字符串转换为秒数间隔
def time2itv(sTime):
p="^([0-9]+):([0-5][0-9]):([0-5][0-9])$"
cp=re.compile(p)
try:
mTime=cp.match(sTime)
except TypeError:
return "[InModuleError]:time2itv(sTime) invalid argument type"
if mTime:
t=map(int,mTime.group(1,2,3))
return 3600*t[0]+60*t[1]+t[2]
else:
return "[InModuleError]:time2itv(sTime) invalid argument value"
# 将秒数间隔转换为计时器"时:分:秒"字符串
def itv2time(iItv):
if type(iItv)==type(1):
h=iItv/3600
sUp_h=iItv-3600*h
m=sUp_h/60
sUp_m=sUp_h-60*m
s=sUp_m
return ":".join(map(str,(h,m,s)))
else:
return "[InModuleError]:itv2time(iItv) invalid argument type"
if __name__=="__main__":
# 仅供测试
sTime="1223:34:15"
itv=time2itv(sTime)
print itv # 4404855
print itv2time(itv) # 1223:34:15
# 不合约定的参数
print time2itv("12:34:95")
print time2itv("sfa123")
print time2itv(itv)
print itv2time("451223")
print itv2time(sTime)
相关阅读 更多 +