将成绩单 .srt 文件解析为可读文本

2024-01-03

我有一个视频脚本 SRT 文件,其中包含传统 SRT 格式的线条。这是一个例子:

1
00:00:00,710 --> 00:00:03,220
Lorem ipsum dolor sit amet
consectetur, adipisicing elit.

2
00:00:03,220 --> 00:00:05,970
Dignissimos et quod laboriosam
iure magni expedita

3
00:00:05,970 --> 00:00:09,130
nisi, quis quaerat. Rem, facere!

我正在尝试使用 python 读取并解析该文件,删除(或跳过)包含数字字符串的行(例如,SKIP '1' & '00:00:00,710 --> 00:00:03,220'),然后格式化剩余的文本行,以便它们以可读的格式连接并呈现。这是我尝试生成的输出的示例:

Lorem ipsum dolor sat amet consectetur,adipisicing elit。 Dignissimos et quod Laboriosam iure magni expedita nisi, quis quaerat。雷姆,面对吧!

这是我到目前为止想出的代码:

def main():
    # Access folder in filesystem

    # After parsing content of file, move to next file

    # Declare variable empty list
    lineList = []

    # read file line by line
    file = open( "/Sample-SRT-File.srt", "r")
    lines = file.readlines()
    file.close()

    # look for patterns and parse

    # Remove blank lines from file
    lines = [i for i in lines if i[:-1]]

    # Discount first and second line of each segment using a match pattern
    for line in lines:
        line = line.strip()
        if isinstance(line[0], int) != False:

            # store all text into a list
            lineList.append(line)

    # for every item in the list that ends with '', '.', '?', or '!', append a space at end
    for line in lineList:
        line = line + ' '

    # Finish with list.join() to bring everything together
    text = ''.join(lineList)
    print(text)

main()

我对 Python 的练习还不够,但现在我想知道有效且可靠地匹配该段的第一行和第二行以进行删除或跳过的唯一方法是否是使用正则表达式。否则,可以使用 itertools 库或某种跳过第 1 行和第 2 行以及任何空行的函数来实现这一点。

有人可以用 Python 来帮助我克服这个问题吗?


我只想使用像这样的库pysrt https://github.com/byroot/pysrt用于解析 srt 文件。这应该被证明是最稳健的。

import pysrt
subs = pysrt.open("foo.srt")

for sub in subs:
    print(sub.text)
    print()

Output:

Lorem ipsum dolor sit amet
consectetur, adipisicing elit.

Dignissimos et quod laboriosam
iure magni expedita

nisi, quis quaerat. Rem, facere!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将成绩单 .srt 文件解析为可读文本 的相关文章

  • Lighttpd 和 cgi python

    我正在尝试通过 lighttpd 执行一些 python 脚本 但是当我尝试运行它时 我只得到一个要求我下载的空白文件 lighttpd conf server modules mod access mod alias mod access
  • 是否有解决方法可以通过 CoinGecko API 安全检查?

    我在工作中运行我的代码 一切都很顺利 但在不同的网络 家庭 WiFi 上 我不断收到403访问时出错CoinGecko V3 API https www coingecko com api documentations v3 可以观察到 在
  • 为什么从 Pandas 1.0 中删除了日期时间?

    我在 pandas 中处理大量数据分析并每天使用 pandas datetime 最近我收到警告 FutureWarning pandas datetime 类已弃用 并将在未来版本中从 pandas 中删除 改为从 datetime 模块
  • 使用特定的类/函数预加载 Jupyter Notebook

    我想预加载一个笔记本 其中包含我在另一个文件中定义的特定类 函数 更具体地说 我想用 python 来做到这一点 比如加载一个配置文件 包含所有相关的类 函数 目前 我正在使用 python 生成笔记本并在服务器上自动启动它们 因为不同的
  • 如何用python脚本控制TP LINK路由器

    我想知道是否有一个工具可以让我连接到路由器并关闭它 然后从 python 脚本重新启动它 我知道如果我写 import os os system ssh l root 192 168 2 1 我可以通过 python 连接到我的路由器 但是
  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 需要在python中找到print或printf的源代码[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在做一些我不能完全谈论的事情 我
  • Pandas Merge (pd.merge) 如何设置索引和连接

    我有两个 pandas 数据框 dfLeft 和 dfRight 以日期作为索引 dfLeft cusip factorL date 2012 01 03 XXXX 4 5 2012 01 03 YYYY 6 2 2012 01 04 XX
  • 在Python中连接反斜杠

    我是 python 新手 所以如果这听起来很简单 请原谅我 我想加入一些变量来生成一条路径 像这样 AAAABBBBCCCC 2 2014 04 2014 04 01 csv Id TypeOfMachine year month year
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • 在Python中检索PostgreSQL数据库的新记录

    在数据库表中 第二列和第三列有数字 将会不断添加新行 每次 每当数据库表中添加新行时 python 都需要不断检查它们 当 sql 表中收到的新行数低于 105 时 python 应打印一条通知消息 警告 数量已降至 105 以下 另一方面
  • 在 Sphinx 文档中*仅*显示文档字符串?

    Sphinx有一个功能叫做automethod从方法的文档字符串中提取文档并将其嵌入到文档中 但它不仅嵌入了文档字符串 还嵌入了方法签名 名称 参数 我如何嵌入only文档字符串 不包括方法签名 ref http www sphinx do
  • 如何使用 pybrain 黑盒优化训练神经网络来处理监督数据集?

    我玩了一下 pybrain 了解如何生成具有自定义架构的神经网络 并使用反向传播算法将它们训练为监督数据集 然而 我对优化算法以及任务 学习代理和环境的概念感到困惑 例如 我将如何实现一个神经网络 例如 1 以使用 pybrain 遗传算法
  • pyspark 将 twitter json 流式传输到 DF

    我正在从事集成工作spark streaming with twitter using pythonAPI 我看到的大多数示例或代码片段和博客是他们从Twitter JSON文件进行最终处理 但根据我的用例 我需要所有字段twitter J
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • 如何解决 PDFBox 没有 unicode 映射错误?

    我有一个现有的 PDF 文件 我想使用 python 脚本将其转换为 Excel 文件 目前正在使用PDFBox 但是存在多个类似以下错误 org apache pdfbox pdmodel font PDType0Font toUnico
  • python import inside函数隐藏现有变量

    我在我正在处理的多子模块项目中遇到了一个奇怪的 UnboundLocalError 分配之前引用的局部变量 问题 并将其精简为这个片段 使用标准库中的日志记录模块 import logging def foo logging info fo
  • Python ImportError:无法导入名称 __init__.py

    我收到此错误 ImportError cannot import name life table from cdc life tables C Users tony OneDrive Documents Retirement retirem
  • cv2.VideoWriter:请求一个元组作为 Size 参数,然后拒绝它

    我正在使用 OpenCV 4 0 和 Python 3 7 创建延时视频 构造 VideoWriter 对象时 文档表示 Size 参数应该是一个元组 当我给它一个元组时 它拒绝它 当我尝试用其他东西替换它时 它不会接受它 因为它说参数不是

随机推荐

  • win32gui 获取当前活动应用程序名称

    我刚刚学习Python 对它来说相对论还很陌生 我创建了以下脚本 它将获取当前活动窗口标题并将其打印到窗口 import win32gui windowTile while True newWindowTile win32gui GetWi
  • Rails - 查看日志文件中生成的 SQL 查询

    有没有一种方法可以像在开发中一样在生产环境中查看 Rails 生成的所有查询 是的你可以 如果您进入 config environments production rb 文件 会有这样的部分 See everything in the lo
  • CSRF 令牌在登录期间过期

    我正在开发 Spring Web 应用程序 我需要避免登录页面上的 csrf 令牌过期问题 因为如果用户等待太长时间并尝试登录 解决 csrf 问题的唯一方法是重新加载页面并尝试再次登录 但这对用户不友好 我想避免这种情况 第一个问题 一般
  • 有什么方法可以以编程方式选择 TextView 中的文本吗?

    我有一个TextView我希望允许用户搜索特定的字符串 如果找到该字符串 它应该突出显示 使用背景跨度太慢而且很尴尬 所以我想弄清楚是否可以让它选择字符串 我知道与EditText这可以使用setSelection 但我不希望用户能够编辑文
  • 富文本框到字符串

    我有一个绑定到菜单项的富文本框 以允许粗体 斜体和下划线以及剪切 复制和粘贴 但是如何获取 RichTextBox 内容并将其从代码隐藏转换为字符串哪个将带有粗体 斜体等
  • 使用 Alamofire 处理超时

    是否可以为 Alamofire 请求添加超时处理程序 在我的项目中 我这样使用 Alamofire init let configuration NSURLSessionConfiguration defaultSessionConfigu
  • 我需要将 constexpr 放在 else-if 之后吗?

    灵感来自这个答案 https stackoverflow com a 52355930 7151494 我尝试复制并粘贴 并在中添加测试main 这段代码 template
  • Perl 5 中存在哪些伪运算符?

    我目前正在记录 Perl 5 的所有运算符 请参阅佩洛普夫 http github com cowens perloprefGitHub 项目 我决定也包含 Perl 5 的伪运算符 对我来说 Perl 中的伪运算符是任何看起来像运算符的东
  • C - 取消引用空指针

    我正在尝试创建自己的交换函数 但遇到了麻烦 为什么我收到 取消引用空指针 void ft swap void a void b size t nbytes unsigned char cur a unsigned char cur b si
  • IBM Worklight - 页面碎片

    我正在尝试将现有的phonegap 项目迁移到worklight 中 Phonegap 应用程序使用 mobile changePage 进行页面导航 这个函数会重新加载现有的 DOM 还是创建一个新的 DOM 由于worklight建议使
  • yii2详细视图条件行类

    我想根据条件更改详细视图中单个属性的类 如果我不想让它成为有条件的 它会像这样工作 attribute gt ungueltig format gt boolean contentOptions gt class gt danger 我希望
  • 无法调试 dotnet core GenericHost docker 容器

    我在最新的 Windows 版本 Windows 10 2004 上使用 Linux 容器 并启用了 WSL 2 和 Docker Desktop 2 3 0 3 45519 我右键单击 docker compose 文件 然后选择Set
  • Android:将数组保存到应用程序数据

    是否可以将整个数组 甚至ArrayList 保存到android应用程序数据中 据我所知 你只能做像 putInt putBoolean 或 putString 这样的事情 但是更复杂的数据类型呢 有没有办法做到这一点 或者我是否必须先将整
  • C 通用数组实现

    我正在尝试在 C 中实现通用数组列表 但是 当数据类型是 int 以外的任何类型时 列表将不会包含正确的数据 例如 像 123 1234 作为双精度数 当将双精度数传递到列表中时 它将变成 000 0000 一 当数据类型为int时 它将有
  • python中如何输入输入的数字

    我想内联输入 1 input number 5 2 1 5 3 4 2 python中如何接收输入数量的输入 我已经尝试过这样的 num int input inputs num mlist for i in range num n int
  • 如何将 Hive 与 Power BI 连接

    我无法将 Hive 视为 power BI 中列出的数据源 有没有办法将Hive数据库与power bi桌面连接 还有有什么限制吗 应在系统中安装并配置 Hive ODBC 驱动程序 以便与 Power BI 连接 成功配置 ODBC 驱动
  • AngularJS 事件未从 $rootScope 触发

    我遇到了 rootScope broadcast 事件未被触发的问题 App run function rootScope var text Not So Static Now rootScope broadcast event stati
  • 在 Android 中使用经过训练的 Scikit-learn svm 分类器 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在开发一个 Android 应用程序 它使用手机中的传感器数据对活动进行分类 与任何 Java 机器学习库相比 我也更喜欢 sci
  • C#中有“记录”吗?

    我希望将一些客户数据存储在内存中 我认为最好的方法是使用记录数组 我不确定这是否是 C 中的名称 但基本上我可以调用Customer i Name并将客户姓名作为字符串返回 在图灵中 它是这样完成的 type customers recor
  • 将成绩单 .srt 文件解析为可读文本

    我有一个视频脚本 SRT 文件 其中包含传统 SRT 格式的线条 这是一个例子 1 00 00 00 710 gt 00 00 03 220 Lorem ipsum dolor sit amet consectetur adipisicin