用Python3读取srt(字幕)文件
我想用Python3来读取srt文件。
这些文件可以在这里找到: http://www.opensubtitles.org/
相关信息可以在这里查看: http://en.wikipedia.org/wiki/SubRip
Subrip支持任何编码方式,比如ascii或unicode。
如果我理解得没错的话,我在用Python读取文件时需要指定使用哪个解码器。那么我是不是可以说,我需要知道文件是用什么编码的,才能做出这个判断?如果是这样的话,如果我有一百个来自不同来源和语言支持的文件,我该怎么确定每个文件的编码呢?
最终,我希望能把这些文件都转换成utf-8编码开始。但我知道其中一些文件可能用的是一些不常见的编码。
请帮帮我,
巴里
3 个回答
1
1
你可以检查每个 .srt
文件开头的 字节顺序标记 来测试文件的编码方式。不过,这种方法可能并不适用于所有文件,因为字节顺序标记并不是必须的属性,而且只在 UTF
文件中规定。你可以通过以下方式进行检查:
testStr = b'\xff\xfeOtherdata'
if testStr[0:2] == b'\xff\xfe':
print('UTF-16 Little Endian')
elif testStr[0:2] == b'\xfe\xff':
print('UTF-16 Big Endian')
#...
你可能想做的就是简单地打开你的文件,然后把从文件中读取的内容解码成unicode格式,处理好unicode表示后再准备打印,最后再编码回去。想了解更多信息和相关的代码示例,可以查看这个讲座。
2
你可以使用charade
这个包(之前叫chardet
)来检测文件的编码方式。