首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python3读取srt (字幕)文件

用Python3读取srt (字幕)文件
EN

Stack Overflow用户
提问于 2011-09-21 01:05:22
回答 3查看 2.8K关注 0票数 2

我希望能够用python3读取srt文件。

可以在以下位置找到这些文件:http://www.opensubtitles.org/

这里有信息:http://en.wikipedia.org/wiki/SubRip

Subrip支持任何编码:例如ascii或unicode。

如果我理解正确,那么当我使用pythons read函数时,我需要指定使用哪个解码器。那么,为了做出判断,我需要知道文件是如何编码的,这样说对吗?如果是这样的话,如果我有一百个具有不同来源和语言支持的这样的文件,我该如何为每个文件建立它呢?

最终,我希望我可以转换这些文件,这样它们一开始都是utf-8编码。但据我所知,其中一些文件可能是某种晦涩的编码。

请帮帮我

巴里

EN

回答 3

Stack Overflow用户

发布于 2011-09-21 04:35:49

您可以使用charade package (以前的chardet)来检测编码。

票数 2
EN

Stack Overflow用户

发布于 2011-09-21 01:20:24

您可以在每个.srt文件的开头检查byte order mark,以测试编码。然而,这可能并不适用于所有文件,因为它不是必需的属性,而且只在UTF文件中指定。可以通过以下方式执行检查

代码语言:javascript
复制
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,以及可能相关的代码示例。

票数 1
EN

Stack Overflow用户

发布于 2014-07-09 21:18:02

还有一个用于处理SRT文件的不错的库:

https://pypi.python.org/pypi/pysrt

您可以在打开和写入SRT文件时指定编码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7488926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档