我是编程和Python的初学者,我正在编写一个脚本来处理.srt子标题文件。我的问题是我不知道如何:通读一个文件,先在文本的开头和第一个空行之间分析文本,然后在空行和下一个空行之间分析文本,直到文件的结尾(“分析”,例如计算一部分的长度,将另一部分转换成数字等等)。在
您可以阅读.srt格式规范并看到一个示例here(type:Plain);文件末尾有一个空行。我想将每个字幕的显示时间/持续时间与其中的字符数进行比较。从文件的开头开始,每个字幕(包括其编号、持续时间信息和文本)与下一个字幕之间用一个空行(a“\n”,我可以用if "\n" in line and len(line) == 2:)来找到它们。时间码总是包含“-->;”,并且总是以三位数结尾,所以如果我把它放在字符串中,我就可以知道它在哪里。问题是,我需要做些什么:阅读字幕文本,可以是1-3行带换行符,计算其字符长度。
读取持续时间,转换为以秒为单位的持续时间。
读取行号(以便能够将其与我的结果一起输出,例如“第44行的持续时间为4.54秒”)。
我可以很容易地完成第二步,但我不确定如何浏览整个文件并告诉Python:找到每个字幕文本的结尾,计算每行字符的长度,加上这个,读取持续时间,除以这些字符,用行号输出,然后对下一个子标题执行相同的操作,直到到达文件的末尾。如果是一个字幕,我可以很容易地做到,但我不知道如何对一个字幕进行检查,然后再寻找下一个字幕。我已经找了两个小时了,但找不到这样的东西。在