基于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 相关文章推荐
python3+dlib实现人脸识别和情绪分析
Apr 21 Python
基于Pandas读取csv文件Error的总结
Jun 15 Python
Python使用itertools模块实现排列组合功能示例
Jul 02 Python
Python参数类型以及常见的坑详解
Jul 08 Python
python tornado使用流生成图片的例子
Nov 18 Python
python 经典数字滤波实例
Dec 16 Python
python3连接kafka模块pykafka生产者简单封装代码
Dec 23 Python
Python找出列表中出现次数最多的元素三种方式
Feb 24 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
Mar 23 Python
Django3中的自定义用户模型实例详解
Aug 23 Python
pytorch 中autograd.grad()函数的用法说明
May 12 Python
OpenCV全景图像拼接的实现示例
Jun 05 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
最小化数据传输――在客户端存储数据
2006/10/09 PHP
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
PHP中date与gmdate的区别及默认时区设置
2014/05/12 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
php生成无限栏目树
2017/03/16 PHP
django中的ajax组件教程详解
2018/10/18 PHP
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
js 通用javascript函数库整理
2011/08/14 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
基于Javascript倒计时效果
2016/12/22 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
详解vue后台系统登录态管理
2019/04/02 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
2019/07/10 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
代码实例讲解python3的编码问题
2019/07/08 Python
空字符串(“”)和null的区别
2012/11/13 面试题
销售主管岗位职责范本
2014/02/14 职场文书
经典而简洁的婚礼主持词
2014/03/13 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript
Golang中异常处理机制详解
2021/06/08 Golang
spring boot中nativeQuery的用法
2021/07/26 Java/Android