我希望能够使用python3读取srt文件。
可在此处找到这些文件: http://www.opensubtitles.org/
有了这里的信息: http://en.wikipedia.org/wiki/SubRip
Subrip支持任何编码:例如ascii或unicode。
如果我理解正确,那么我需要指定当我使用pythons read函数时使用哪个解码器。所以我说得对,我需要知道如何对文件进行编码才能做出判断?如果是这样的话,如果我有一百个具有不同来源和语言支持的文件,我如何为每个文件建立该文件?
最终我更愿意,如果我可以转换文件,以便它们都以utf-8编码开始。但是我知道这些文件中的一些可能是一些模糊的编码。
请帮忙,
百里
答案 0 :(得分:2)
您可以使用charade
package(以前为chardet
)来检测编码。
答案 1 :(得分:1)
您可以在每个.srt
文件的开头检查byte order mark以测试编码。但是,这可能不适用于所有文件,因为它不是必需属性,并且仅在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表示直到您准备好打印,然后再将其编码回来。有关更多信息,请参阅this talk,以及可能相关的代码示例。
答案 2 :(得分:0)