基于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实现生成随机密码的方法
Aug 23 Python
Python中对列表排序实例
Jan 04 Python
Python中使用装饰器来优化尾递归的示例
Jun 18 Python
python logging日志模块的详解
Oct 29 Python
Python编程实现从字典中提取子集的方法分析
Feb 09 Python
Python wxPython库Core组件BoxSizer用法示例
Sep 03 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
Feb 13 Python
python简单验证码识别的实现方法
May 10 Python
教你如何编写、保存与运行Python程序的方法
Jul 12 Python
python操作cfg配置文件方式
Dec 22 Python
python软件都是免费的吗
Jun 18 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
Jan 19 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
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
php绘制圆形的方法
2015/01/24 PHP
用jscript实现列出安装的软件列表
2007/06/18 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
2013/01/17 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
2015/12/04 Javascript
几种tab切换详解
2017/02/03 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
使用vue-cli打包过程中的步骤以及问题的解决
2018/05/08 Javascript
Vue与Node.js通过socket.io通信的示例代码
2018/07/25 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
go语言计算两个时间的时间差方法
2015/03/13 Python
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
python通过smpt发送邮件的方法
2015/04/30 Python
Python调用C# Com dll组件实战教程
2017/10/12 Python
深入浅析Python中的yield关键字
2018/01/24 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
2019/03/27 Python
python框架django项目部署相关知识详解
2019/11/04 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
Python读写csv文件流程及异常解决
2020/10/20 Python
CSS3圆角和渐变2种常用功能详解
2016/01/06 HTML / CSS
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
HTML5 本地存储之如果没有数据库究竟会怎样
2013/04/25 HTML / CSS
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
总经理文秘岗位职责
2014/02/03 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
导师对论文的学术评语
2015/01/04 职场文书