基于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删除指定目录下过期文件的2个脚本分享
Apr 10 Python
Python内建数据结构详解
Feb 03 Python
实现python版本的按任意键继续/退出
Sep 26 Python
Django 前后台的数据传递的方法
Aug 08 Python
python连接mongodb密码认证实例
Oct 16 Python
对python中不同模块(函数、类、变量)的调用详解
Jul 16 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
Python列表切片常用操作实例解析
Dec 16 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
在spyder IPython console中,运行代码加入参数的实例
Apr 20 Python
Python数据分析入门之数据读取与存储
May 13 Python
Python中requests库的用法详解
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
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
zf框架的zend_cache缓存使用方法(zend框架)
2014/03/14 PHP
js 幻灯片的实现
2011/12/06 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
bootstrap弹出层的多种触发方式
2017/05/10 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
2018/10/10 Javascript
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
JS中的算法与数据结构之列表(List)实例详解
2019/08/16 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
Django框架表单操作实例分析
2019/11/04 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
Jar包的作用是什么
2014/03/30 面试题
Ruby如何创建一个线程
2013/03/10 面试题
求职信怎么写
2014/05/23 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
就业推荐表院系意见
2015/06/05 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python