webvtt字幕转srt字幕的python程序(附改名程序)
最近写了两个比较简单的python程序,原有都是由于看公开课感觉比较费劲,一个是下载的视频无用的名字太长,另一个就是下载的vtt字幕播放器不识别,写了一个vtt转换成str字幕格式的文件
vtt to str比较简单:
大概就是打开一个vtt文件,把开头的webvtt删掉,把所有的"."替换成",",把后缀名改成srt。参考下面两个网页
http://mooc.guokr.com/post/615236/
http://blog.csdn.net/iracer/article/details/48765347
要是单纯的吧vtt改成srt。播放时的确会显示字幕,但是字幕会无视时间轴,一个劲的走,根本起不到字幕的作用。
要是一个个用记事本打开,重复的操作这些工作还是比较恶心。毕竟mooc一份时间比较短,总份数又比较多。
我的方法就是读出文件后,用split('.'),把所有的内容分割起来,再 str1+ ',' + str2 迭代起来把所有的内容拼接起来,这样完成了替换。
用str = listvtt[0][8:]的方式删掉了WEBVTT\n\n 这8个字符。最后重新建立一个同样名字的srt字幕文件
下面就是我的具体实现
#4到9行是把路径中所有的vtt文件找出来
#os.listdir(path) 返回一个内容是path所有文件名的数组
#coding = utf-8
import os
path = r"E:\folders"
vttName = [] for i in os.listdir(path):
name = i.split('.')
if name[-1] == 'vtt':
vttName.append(i) for vttname in vttName:
vtt = open(path + "\\" + vttname)
filevtt = vtt.read()
vtt.close()
#print filevtt
listvtt = filevtt.split('.')
#print listvtt
#print listvtt[0][8:]
strvtt = listvtt[0][8:]
for i in range(1 , len(listvtt) ):
strvtt = strvtt + "," + listvtt[i] #print strvtt
srtName = vttname.split('.')
srt = open(path + '\\' + srtName[0] + '.srt','w') srt.write(strvtt)
srt.close()
#listvtt[0]是vtt文件的在第一个'.'好的所有内容,由于vtt的文件格式前面为WEBVTT\n\n 正好可以删去 用了魔术数字 8
闲话不多说,其实主要的就是用到了python 的 os包中的 changename 以及python的文件读写。
changename 比较无脑,
文件读写就是把文件的内容读出来——就是读成一个str,修改这个str,并写入到文件中。
程序很简单,而且python不愧是思考问题最简单易行的方法。
changname 非常简陋:
path = 'E:\\folders'
for files in os.listdir(path):
print files
p = files.split('_')
print p
print p[-1]
oldname = path + '//' + files
newname = path + '//' + p[-1]
os.rename(oldname, newname)
这个就是根据文件名的特点,提取了最后一个也就是我想要的内容并更改名字,而且也是一次性的把文件夹里所有的文件名都改了,有点不太智能。但也够用了 :P
而且这个程序我是直接在idle 中用的,比较简单与原始
webvtt字幕转srt字幕的python程序(附改名程序)的更多相关文章
- 【Win 10 应用开发】加载外部的 srt 字幕
据说系统内置的多媒体功能支持 srt. ssa 等字幕,老周测试过几种格式的字幕均能加载. SRT 字幕是最简单的字幕结构,甚至你用记事本都能做出来,就是分为几行来写. 第一行是字幕的编号,应该是从1 ...
- [UWP小白日记-5]转换MVA学院的XML字幕为SRT
开源地址:第二版开源地址GIT 暂时用不了了,在最新的WIN10 10586.494系统上回闪退,正在酝酿第二版 O(∩_∩)O哈哈~ 新版已经完工:第二版 地方MVA上好多教程,但是微软的所有中国网 ...
- SRT字幕格式
[时间:2019-03] [状态:Open] [关键词:字幕,SRT,文件格式] 0 引言 视频文件中最简单.最常见的外挂字幕格式是SRT(SubRip Text).本人找了好久也没找到类似的标准文档 ...
- [python]用profile协助程序性能优化
转自:http://blog.csdn.net/gzlaiyonghao/article/details/1483728 本文最初发表于恋花蝶的博客http://blog.csdn.net/lanph ...
- 使用Python实现Hadoop MapReduce程序
转自:使用Python实现Hadoop MapReduce程序 英文原文:Writing an Hadoop MapReduce Program in Python 根据上面两篇文章,下面是我在自己的 ...
- [Python学习笔记][第八章Python异常处理结构与程序调试]
1/30 第八章Python异常处理结构与程序调试 异常处理 try-except结构 try: try块 except Exception: except块 try-except-else结构 tr ...
- 将Python代码嵌入C++程序进行编写
将Python代码嵌入C++程序进行编写的实例,python嵌入 把python嵌入的C++里面需要做一些步骤 安装python程序,这样才能使用python的头文件和库 在我们写的源文件中增加“Py ...
- 浅谈 Python 程序和 C 程序的整合
源地址:http://www.ibm.com/developerworks/cn/linux/l-cn-pythonandc/ 概览 Python 是一种用于快速开发软件的编程语言,它的语法比较简单, ...
- python学习1:程序元素和基本使用方法(跟随mooc学习)
程序元素: 注释,缩进,变量,常量,表达式 输入,输出,分支,循环 示例程序,温度转换程序: #TempConvert.pyval=input("请输入带温度表示符号发温度值(例如:32C) ...
随机推荐
- mariadb semi plugin遇到的坑
安装完semi plugin运行一段时间后,重启mariadb, 突然发现canal无法解析数据了,一直在报错,然后登陆mariadb, show plugins竟然没有看到之前安装的semi plu ...
- Python:员工信息增删改查
一:需求 homework.txt文件中有如下格式的人员信息: 1,Jack Wang,28,13451024608,HR,2015‐01‐072,Rain Wang,21,13451054608,I ...
- centos7+apache+svn配置 踩坑,注意权限问题。apache应用目录checkout应用 必须用这个命令:svn co file:///home/svn/test/ test ,通过svn add * &&commit 及任意修改都是不行的
阅读帮助 命令提示符 [root@server-002 ~]# 表示当前服务root用户执行的命令 [svn@server-002 ~]$ 表示普通用户svn执行的命令 [root@localhost ...
- Mysql配置参数sync_binlog说明
Mysql配置参数sync_binlog说明 mysql> select version(); +-----------+ | version() | +-----------+ | | +-- ...
- Zabbix利用orabbix插件监控Oracle数据库
一.jdk的安装(Orabbix Server) 1.软件解压,放到固定位置 1 2 tar zxf jdk-8u51-linux-x64.tar.gz mv jdk1.8.0_51/ /usr/lo ...
- RHEL7安装图像化桌面
RHEL7安装图像化桌面 作者:Eric 微信:loveoracle11g 在安装系统的时候选择的是默认的Minimal Install RHEL7系统安装完成开机启动后发现没有图形化 Linux系统 ...
- numpy.ravel() vs numpy.flatten()
首先声明两者所要实现的功能是一致的(将多维数组降为一维),两者的区别在于返回拷贝(copy)还是返回视图(view),numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响(reflec ...
- css样式,高斯模糊
.blur-container.blur-3 { --bg: url("background.jpg"); background-image: var(--bg); } .blur ...
- 基于HAProxy+Keepalived高可用负载均衡web服务的搭建
一 原理简介 1.HAProxyHAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web ...
- mysql自动创建分区
call Insert_Partition('2018-07-07','2019-01-01'); 存储过程 BEGIN DECLARE nowdate date; DECLARE endtmp da ...