基于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实现系统状态监测和故障转移实例方法
Nov 18 Python
wxPython使用系统剪切板的方法
Jun 16 Python
python中range()与xrange()用法分析
Sep 21 Python
Python递归函数定义与用法示例
Jun 02 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
实例讲解Python脚本成为Windows中运行的exe文件
Jan 24 Python
简单了解python代码优化小技巧
Jul 08 Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 Python
python实现的config文件读写功能示例
Sep 24 Python
python实现贪吃蛇游戏源码
Mar 21 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
scrapy-splash简单使用详解
Feb 21 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 file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
PHP操作XML中XPath的应用示例
2019/07/04 PHP
IE和Firefox下javascript的兼容写法小结
2008/12/10 Javascript
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
Bootstrap学习笔记之js组件(4)
2016/06/12 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
基于构造函数的五种继承方法小结
2017/07/27 Javascript
浅谈jquery fullpage 插件增加头部和版权的方法
2018/03/20 jQuery
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
jQuery实现的简单拖拽功能示例【测试可用】
2018/08/14 jQuery
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
python逐行读写txt文件的实例讲解
2018/04/03 Python
Python Subprocess模块原理及实例
2019/08/26 Python
python装饰器的特性原理详解
2019/12/25 Python
python实现的分层随机抽样案例
2020/02/25 Python
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
如何写辞职书
2015/02/26 职场文书
Redis keys命令的具体使用
2022/06/05 Redis
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android