如何从成绩单中打印多个时间戳?

How do I print several timestamps from a transcript?

我正在尝试打印副本(.txt 文件)中的所有现有时间戳。

文字记录的简短摘录:

36
00:01:36,990 --> 00:01:39,119
Text...

37
00:01:39,119 --> 00:01:41,759
Text...

38
00:01:41,759 --> 00:01:43,799
Text...

到目前为止,我的代码如下所示:

import re
timestamps = []
linenum = 0
pattern = re.compile(r"\d{2}:\d{2}:\d{2},\d{3}\s-->\s\d{2}:\d{2}:\d{2},\d{3}")
for line in transcript:
    linenum += 1
    if pattern.search(line) != None:
        timestamps.append(linenum, line.rstrip('\n'))
print(timestamps)

输出是……什么都没有。没有错误或其他任何东西。但我希望打印出所有包含时间戳的行。

我不知道代码有什么问题或如何解决。有人可以帮忙吗?非常感谢。

谢谢!

您需要将元组或列表附加到 timestamps 列表。

import re
timestamps = []
linenum = 0
pattern = re.compile(r"\d{2}:\d{2}:\d{2},\d{3}\s-->\s\d{2}:\d{2}:\d{2},\d{3}")
for line in transcript:
    linenum += 1
    if pattern.search(line):
        timestamps.append((linenum, line.rstrip('\n')))
print(timestamps)

参见Python demo

输入类似

12:12:12,234 --> 12:13:46,346
Blah
12:14:12,121 --> 12:15:89,678
Blah2

输出为

[(1, '12:12:12,234 --> 12:13:46,346'), (3, '12:14:12,121 --> 12:15:89,678')]