用威力导演制作短片,这个软件有个导入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实现)相关推荐

  1. python刷快手极速版_自动刷快手极速版脚本当前页面出现

    很简单的,现在就尝试一下吧 wait:线程不再活动,不再参与调度,进入 wait set 中,因此不会浪费 CPU 资源,也不会去竞争锁了,这时的线程状态即是 WAITING可以根据提示在属性页中直接 ...

  2. python文本筛选多个word_用Python批量替换多个Word文件中的文字

    实例14:用Python批量替换多个Word文件中的文字 公众号"Python操作Office软件高效工作" 29 人赞同了该文章 我们在实例7中批量生成了采购合同.但是假设现在我 ...

  3. python怎么读取pdf为文本_轻松用Python批量提取PDF文本内容,这个小技巧告诉你!...

    轻松用Python批量提取PDF文本内容,这个小技巧告诉你!-1.jpg (22.73 KB, 下载次数: 0) 2018-9-7 08:33 上传 本文为你展示,如何用Python把许多PDF文件的 ...

  4. 使用Python批量替换指定目录所有文件中的指定文本

    使用Python批量替换指定目录所有文件中的指定文本 # -*- coding: utf-8 -*- import os from = "aaa" #替换为什么内容,可以是多行 t ...

  5. swagger python自动化用例_自动生成robot自动化测试用例

    #!/usr/bin/env python """解析swagger接口返回值自动生成接口自动化用例 将新增的用例写入到文件末尾,已存在的用例则不重新写入"&q ...

  6. word批量替换多组文字 python_实例14:用Python批量替换多个Word文件中的文字

    我们在实例7中批量生成了采购合同.但是假设现在我方的公司名由"ABC商贸有限公司"变成了"ABC贸易有限公司",那我们就需要去每份合同中对应位置进行替换.当然也 ...

  7. 这个插件竟打通了Python和Excel,还能自动生成代码!

    作者 | 云朵君 来源丨数据STUDIO 加载一个Jupyter插件后,无需写代码就能做数据分析,还帮你生成相应代码? 没错,只需要加载这个名为Mito的小工具包,用Python做数据分析,变得和用E ...

  8. 【Python】这个插件竟打通了Python和Excel,还能自动生成代码!

    加载一个Jupyter插件后,无需写代码就能做数据分析,还帮你生成相应代码? 没错,只需要加载这个名为Mito的小工具包,用Python做数据分析,变得和用Excel一样简单: 介绍 以 Excel ...

  9. Python批量替换目录下文件后缀脚本实例

    本篇文章主要讲解Python批量替换文件目录下的后缀文件的方法. 日期:2021年12月25日 作者:任聪聪 使用效果 代码实例 import os import random list_nums = ...

最新文章

  1. 用Eclipse 开发Dynamic Web Project应用程序
  2. codeforces C. Diverse Permutation(构造)
  3. .NET 6 新特性 Parallel ForEachAsync
  4. C++中size_t的学习
  5. 打击侵犯公民个人信息罪的司法困境
  6. 服务器用户设置备份,用户配置文件状态变成“备份”
  7. java jsp分页_jsp实现分页的步骤及代码
  8. 方立勋_30天掌握JavaWeb_回顾复习
  9. 电容器原理和计算公式及电容单位换算
  10. 教你设置无线wifi无缝漫游,实现无线wifi自动切换联网
  11. 跟零计算机基础的房东女儿讲了一下午的中间人劫持京东事件后,她感激涕零,决定给我免除房租...
  12. 云原生-备份(原文地址:https://www.infoq.cn/article/fA42rfjV*dYGAvRANFqE)
  13. Kotlin 协程与flow
  14. Java架构师和java工程师的区别是什么?架构师薪资是多少?
  15. RK3399开发版android7.1双屏异触解决方法
  16. 【原创】Jlink在ADS下的配置说明及常见问题解决办法
  17. win7 32与64位系统
  18. linux egg,Ubuntu下egg文件的安装与制作
  19. 前端700行代码项目练习--小米官网(仅html、css实现)
  20. 【Java入门杂记】【六】

热门文章

  1. mysql子查询作为条件_sql - 使用子查询作为条件的MySQL DELETE FROM
  2. 微信小程序如何循环控制一行显示几个wx:for
  3. [009]新疆大盘鸡
  4. 【iOS_GitHub】文档/文件查看器(支持本地或者其他app分享过来的word、excel、pdf、rtf等格式文件)
  5. MyBatis、IDEA控制台乱码
  6. Python自动化办公之Word,全网最全看这一篇就够了!
  7. Python type(anyObj) 函数与 types 模块
  8. JAVA Web基础 留言本综合练习
  9. H5原生调用摄像头getUserMedia的使用与注意事项
  10. 恶作剧c语言程序,自己用C语言编写的一个恶作剧小程序代码