要一次提取完整的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 小助理,如未能正确解答您的问题,请继续追问。 |