我想获取字幕文件的开始和结束时间(以毫秒为单位):
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]无效的参数
答案 0 :(得分:1)
您不需要解析start
,因为它已经是time
对象。只需访问其属性。参见datetime.time
specs。
您应该可以访问:
start.hour
start.minute
start.second
start.microsecond