基于python修改srt字幕的时间轴


Posted in Python onFebruary 03, 2020

这篇文章主要介绍了基于python修改srt字幕的时间轴,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

代码如下

# -*- coding: utf-8 -*-
# @时间 : 2020-01-19 02:53
# @作者 : 陈祥安
# @文件名 : run.py.py
# @公众号: Python学习开发

import os
import datetime

temp = os.path.dirname(__file__)
srt_file_path = os.path.join(temp, "15.srt")


def read_srt_file_gen():
  with open(srt_file_path, "r") as fs:
    for data in fs.readlines():
      yield data


def read_srt_file():
  with open(srt_file_path, "r") as fs:
    data = fs.read()
  return data


def start():
  new_data_str = read_srt_file()
  for item in read_srt_file_gen():
    if "--> " in item:
      time_arr = item.split('--> ')
      start_time = time_arr[0].replace(" ", "")
      end_time = time_arr[1].replace("\n", "")
      _new_start_time = datetime.datetime.strptime(start_time + "0", "%H:%M:%S,%f") - datetime.timedelta(
        seconds=1)
      _new_end_time = datetime.datetime.strptime(end_time + "0", "%H:%M:%S,%f") - datetime.timedelta(
        seconds=1)
      new_start_time = datetime.datetime.strftime(_new_start_time, "%H:%M:%S,%f")[:-3]
      new_end_time = datetime.datetime.strftime(_new_end_time, "%H:%M:%S,%f")[:-3]
      new_data_str = new_data_str.replace(start_time, new_start_time).replace(end_time, new_end_time)
  return new_data_str


if __name__ == '__main__':
  print(start())

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中尝试多线程编程的一个简明例子
Apr 07 Python
Python中asyncore异步模块的用法及实现httpclient的实例
Jun 28 Python
Python使用迭代器捕获Generator返回值的方法
Apr 05 Python
python list删除元素时要注意的坑点分享
Apr 18 Python
Win10下python 2.7.13 安装配置方法图文教程
Sep 18 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
解析python的局部变量和全局变量
Aug 15 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
Jan 21 Python
Python中os模块功能与用法详解
Feb 26 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
教你怎么用Python操作MySql数据库
May 31 Python
Python实现不规则图形填充的思路
Feb 02 #Python
Python ORM编程基础示例
Feb 02 #Python
Python 面向对象之类class和对象基本用法示例
Feb 02 #Python
flask 框架操作MySQL数据库简单示例
Feb 02 #Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 #Python
使用Python操作ArangoDB的方法步骤
Feb 02 #Python
详解有关PyCharm安装库失败的问题的解决方法
Feb 02 #Python
You might like
获得Google PR值的PHP代码
2007/01/28 PHP
PHP中的MYSQL常用函数(php下操作数据库必备)
2010/09/12 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
PHP将回调函数作用到给定数组单元的方法
2014/08/19 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
关于laravel框架中的常用目录路径函数
2019/10/23 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
使用js写的一个简易的投票
2013/11/27 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
2016/10/14 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
angular分页指令操作
2017/01/09 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
python使用点操作符访问字典(dict)数据的方法
2015/03/16 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
PyQt5 如何让界面和逻辑分离的方法
2020/03/24 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
管理学专业个人求职信范文
2013/12/13 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
2015年生活老师工作总结
2015/05/27 职场文书
宣传部部长竞选稿
2015/11/21 职场文书
Python中相见恨晚的技巧
2021/04/13 Python
如何用JavaScipt测网速
2021/05/09 Javascript
详细了解java监听器和过滤器
2021/07/09 Java/Android
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏