python 批量替换srt文本_自动生成srt格式的脚本(Python实现)
用威力导演制作短片,这个软件有个导入srt字幕的功能,可以写好文本后一次性导入短片的字幕,比手工在威力导演里写快多了,srt文本中,每一条字幕的格式是:
序号
起止时间
字幕内容
例如:
1
00:00:08,0 --> 00:00:13,0
发展历程
2
00:00:13,0 --> 00:00:18,0
2006年
通用产品线正式成立
...
这种格式在字幕的条数发生变化时修改起来很麻烦,比如一共有50条字幕,在第3条后加一条新字幕,则后面47条的序号、起止时间点都要修改,简直是噩梦,为此编写了下面的Python脚本,现在只要将字幕写成如下格式,用脚本处理后就能生成上面要求的格式了:
发展历程
2006年
通用产品线正式成立
...
其中主要的技术点有(Python 3.1):
时间偏移用timedelta对象,时间点用datetime对象,不能用time对象,因为time对象和timedelta对象不能做和; 时间转换为字符串的方法是strftime() 地址字符串要用“/”代替“\”;
将待处理文件保存为ANSI格式文本,在脚本里配好地址(这里是“f:/视频制作”)就可以了。
下面是脚本内容:
#!/usr/bin/env python
from datetime import datetime, timedelta
if name == 'main':
#读原始文件
oriScript = open('f:/视频制作/rawScript.srt','rt')
#写目标文件
destScript = open('f:/视频制作/destScript.srt','wt')
try:
block = ''
seqNo = 1
startTime = datetime(1980,1,1,0,0,8)
for curLine in oriScript:
#print(len(curLine))
if curLine.isspace() and len(block)>0: #本行是空行
destScript.write(str(seqNo)+'\n') #写字幕序号
endTime = startTime+timedelta(seconds=5)
#写起止时间:
destScript.write(startTime.strftime("%X") + ',0 --> '+ endTime.strftime("%X") + ',0\n')
destScript.write(block+'\n')
block = '' #清空缓存
seqNo = seqNo + 1 #序号递增
startTime = endTime #本条的终止时间是下一条的起始时间
else:
block = block + curLine #当前行追加到缓存中
finally:
oriScript.close()
destScript.close()
python 批量替换srt文本_自动生成srt格式的脚本(Python实现)相关推荐
- python刷快手极速版_自动刷快手极速版脚本当前页面出现
很简单的,现在就尝试一下吧 wait:线程不再活动,不再参与调度,进入 wait set 中,因此不会浪费 CPU 资源,也不会去竞争锁了,这时的线程状态即是 WAITING可以根据提示在属性页中直接 ...
- python文本筛选多个word_用Python批量替换多个Word文件中的文字
实例14:用Python批量替换多个Word文件中的文字 公众号"Python操作Office软件高效工作" 29 人赞同了该文章 我们在实例7中批量生成了采购合同.但是假设现在我 ...
- python怎么读取pdf为文本_轻松用Python批量提取PDF文本内容,这个小技巧告诉你!...
轻松用Python批量提取PDF文本内容,这个小技巧告诉你!-1.jpg (22.73 KB, 下载次数: 0) 2018-9-7 08:33 上传 本文为你展示,如何用Python把许多PDF文件的 ...
- 使用Python批量替换指定目录所有文件中的指定文本
使用Python批量替换指定目录所有文件中的指定文本 # -*- coding: utf-8 -*- import os from = "aaa" #替换为什么内容,可以是多行 t ...
- swagger python自动化用例_自动生成robot自动化测试用例
#!/usr/bin/env python """解析swagger接口返回值自动生成接口自动化用例 将新增的用例写入到文件末尾,已存在的用例则不重新写入"&q ...
- word批量替换多组文字 python_实例14:用Python批量替换多个Word文件中的文字
我们在实例7中批量生成了采购合同.但是假设现在我方的公司名由"ABC商贸有限公司"变成了"ABC贸易有限公司",那我们就需要去每份合同中对应位置进行替换.当然也 ...
- 这个插件竟打通了Python和Excel,还能自动生成代码!
作者 | 云朵君 来源丨数据STUDIO 加载一个Jupyter插件后,无需写代码就能做数据分析,还帮你生成相应代码? 没错,只需要加载这个名为Mito的小工具包,用Python做数据分析,变得和用E ...
- 【Python】这个插件竟打通了Python和Excel,还能自动生成代码!
加载一个Jupyter插件后,无需写代码就能做数据分析,还帮你生成相应代码? 没错,只需要加载这个名为Mito的小工具包,用Python做数据分析,变得和用Excel一样简单: 介绍 以 Excel ...
- Python批量替换目录下文件后缀脚本实例
本篇文章主要讲解Python批量替换文件目录下的后缀文件的方法. 日期:2021年12月25日 作者:任聪聪 使用效果 代码实例 import os import random list_nums = ...
最新文章
- 用Eclipse 开发Dynamic Web Project应用程序
- codeforces C. Diverse Permutation(构造)
- .NET 6 新特性 Parallel ForEachAsync
- C++中size_t的学习
- 打击侵犯公民个人信息罪的司法困境
- 服务器用户设置备份,用户配置文件状态变成“备份”
- java jsp分页_jsp实现分页的步骤及代码
- 方立勋_30天掌握JavaWeb_回顾复习
- 电容器原理和计算公式及电容单位换算
- 教你设置无线wifi无缝漫游,实现无线wifi自动切换联网
- 跟零计算机基础的房东女儿讲了一下午的中间人劫持京东事件后,她感激涕零,决定给我免除房租...
- 云原生-备份(原文地址:https://www.infoq.cn/article/fA42rfjV*dYGAvRANFqE)
- Kotlin 协程与flow
- Java架构师和java工程师的区别是什么?架构师薪资是多少?
- RK3399开发版android7.1双屏异触解决方法
- 【原创】Jlink在ADS下的配置说明及常见问题解决办法
- win7 32与64位系统
- linux egg,Ubuntu下egg文件的安装与制作
- 前端700行代码项目练习--小米官网(仅html、css实现)
- 【Java入门杂记】【六】
热门文章
- mysql子查询作为条件_sql - 使用子查询作为条件的MySQL DELETE FROM
- 微信小程序如何循环控制一行显示几个wx:for
- [009]新疆大盘鸡
- 【iOS_GitHub】文档/文件查看器(支持本地或者其他app分享过来的word、excel、pdf、rtf等格式文件)
- MyBatis、IDEA控制台乱码
- Python自动化办公之Word,全网最全看这一篇就够了!
- Python type(anyObj) 函数与 types 模块
- JAVA Web基础 留言本综合练习
- H5原生调用摄像头getUserMedia的使用与注意事项
- 恶作剧c语言程序,自己用C语言编写的一个恶作剧小程序代码