基于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静态方法实例
Jan 14 Python
python使用mailbox打印电子邮件的方法
Apr 30 Python
python虚拟环境virtualenv的安装与使用
Sep 21 Python
python使用logging模块发送邮件代码示例
Jan 18 Python
分享一下Python数据分析常用的8款工具
Apr 29 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
python爬取内容存入Excel实例
Feb 20 Python
树莓派极简安装OpenCv的方法步骤
Oct 10 Python
pytorch 自定义卷积核进行卷积操作方式
Dec 30 Python
opencv 图像轮廓的实现示例
Jul 08 Python
python开发入门——set的使用
Sep 03 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
Jan 15 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计算两个日期相差天数的代码
2015/12/23 PHP
php版微信公众号自定义分享内容实现方法
2016/09/22 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
2018/06/09 PHP
对laravel in 查询的使用方法详解
2019/10/09 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
js时间比较示例分享(日期比较)
2014/03/05 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
javascript数组操作方法小结和3个属性详细介绍
2014/07/05 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
jquery移动端TAB触屏切换实现效果
2020/12/22 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
2019/09/26 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
2019/11/18 Javascript
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
python引用DLL文件的方法
2015/05/11 Python
Python实现删除文件但保留指定文件
2015/06/21 Python
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
python实现二叉查找树实例代码
2018/02/08 Python
Python简单读写Xls格式文档的方法示例
2018/08/17 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
python网络编程 使用UDP、TCP协议收发信息详解
2019/08/29 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
Python使用re模块验证危险字符
2020/05/21 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
2020/08/17 Python
详解CSS3的box-shadow属性制作边框阴影效果的方法
2016/05/10 HTML / CSS
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
师范生实习自我鉴定
2013/11/01 职场文书
简历里的自我评价
2014/01/31 职场文书
道路交通安全实施方案
2014/03/12 职场文书
Python Django模型详解
2021/10/05 Python