要一次提取完整的2-3句字幕,可以使用一个循环来读取文件,在遇到时间轴时,将接下来的多行字幕保存起来,直到遇到下一个时间轴或文件结束。
你可以尝试以下代码:
- file_srt = open('file.srt', 'r')
- subtitles = [] # 保存每个时间轴对应的多行字幕
- for line in file_srt:
- if '-->' in line:
- # 处理前一个时间轴的多行字幕
- if subtitles:
- print(''.join(subtitles))
- subtitles = [] # 清空列表,准备保存下一个时间轴的多行字幕
- # 保存当前时间轴
- next_line = next(file_srt)
- subtitles.append(next_line)
- elif line.strip(): # 忽略空行
- # 保存当前时间轴对应的多行字幕
- subtitles.append(line)
- # 处理最后一个时间轴的多行字幕
- if subtitles:
- print(''.join(subtitles))
- file_srt.close()
复制代码
这段代码会逐行读取字幕文件。当遇到时间轴(即包含'-->'的行)时,它会保存下一行并将其添加到`subtitles`列表中。接着,它会继续读取字幕的下一行,并将其添加到`subtitles`列表中。当遇到下一个时间轴时,它会打印出之前保存的完整多行字幕,并清空`subtitles`列表以保存下一个时间轴的多行字幕。在循环结束后,它会处理最后一个时间轴的多行字幕。
这样,你就可以一次提取出完整的2-3句字幕了。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。