首页 > 解决方案 > 如何从成绩单中打印多个时间戳?

问题描述

我正在尝试从成绩单(.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)

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

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

谢谢!

标签: regexpython-3.7

解决方案


您需要将元组或列表附加到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 演示

输入像

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')]

推荐阅读