pysrt:获取时间(以毫秒为单位)

时间:2019-04-01 19:35:14

标签: python python-3.x

我想获取字幕文件的开始和结束时间(以毫秒为单位):

SIMPLE_FILE = """
1
00:00:03,010 --> 00:00:33,400
cette matrice-là <i>E<sub>t</sub>·…·E<sub>1</sub>A</i> possède une ligne

2
00:01:00,000 --> 00:02:31,020
there was a SubRip file
with two subtitles.
"""
with open("subtitles.srt", "w", encoding="utf-8") as fp:fp.write(SIMPLE_FILE)

我使用pysrt加载了字幕文件:

import pysrt
sub = pysrt.open("subtitles.srt")
# Start and End time
start = sub[0].start.to_time()
end = sub[0].end.to_time()

print(start)
print(end)
  

00:00:03.010000

     

00:00:33.400000

如您所见,我得到的是Hour:Minutes:Seconds.Millisecond格式。现在,我的问题是:如何将其转换为毫秒?

谢谢您的帮助

编辑: 我检查了类型:

type(start)
  

datetime.time

编辑2:

基于Converting string to datetime in Python using strptime

我尝试过:

from datetime import datetime

dt_obj = datetime.strptime(str(start),
                           '%H:%M:%S.%f')
millisec = dt_obj.timestamp() * 1000

print(millisec)

我得到:

  
     

OSError跟踪(最近的呼叫   最后)在()         3 dt_obj = datetime.strptime(str(start),         4'%H:%M:%S.%f')   ----> 5 millisec = dt_obj.timestamp()* 1000         6         7印(millisec)

     

OSError:[Errno 22]无效的参数

1 个答案:

答案 0 :(得分:1)

您不需要解析start,因为它已经是time对象。只需访问其属性。参见datetime.time specs

您应该可以访问:

start.hour
start.minute
start.second
start.microsecond