python应用

您所在的位置:网站首页 vtt转换srt python应用

python应用

2023-08-13 19:51| 来源: 网络整理| 查看: 265

# Python应用-vtt字幕转srt字幕

文章为原创手写,如需转发请贴上原文地址,谢谢!

# 应用场景

今天下载了一堆mp4视频,但是字幕是vtt格式的,发现这是web html5比较常用的字幕格式,本地播放器的话用的还是srt多一点。两个文件打开对比了下发现差别也不是很大,为了后面定制化地适应新的需求,决定写一个Python的脚本。

# 明确需求

看下vtt的文件:

看下srt的文件:

# 分析差异 vtt文件是WEBVTT开头,srt没有 srt没个段落开头都有一个序号,vtt没有 srt以","为分隔符,vtt以"."为分隔符。关于这点不知道两个格式的标准也在进化,我刚开始并没有替换"."也能使用。srt用"."作为分隔符也没有问题。 # 以下为实现代码 import os import re def traverseFolder(targetFolder): if(targetFolder[-1]==os.path.sep): targetFolder=targetFolder[0:-1] for root, dirs, files in os.walk(targetFolder): for oneFile in files: vtt2srt(root+os.path.sep+oneFile) def vtt2srt(filePath): fileSplitName=os.path.splitext(filePath) if(fileSplitName[1]==".vtt"): print("Processing with file: "+filePath) with open(filePath,"r",encoding="utf-8") as fin: fileContent=fin.readlines() lineNum=2 fileMaxLineNum=len(fileContent) with open(fileSplitName[0]+".srt","w",encoding="utf-8") as fout: fout.write("1\n") for i in range(2,fileMaxLineNum): if(fileContent[i].strip().isdigit()): continue #tempStr=fileContent[i].replace(".",",") if re.match(r"(\d\d:\d\d:)",fileContent[i])==None : fout.write(re.sub(r"(\d\d:)",lambda m:"00:"+m.group(0),fileContent[i])) else: fout.write(fileContent[i]) if(fileContent[i].strip()=="" and i+1

python应用-修改文件内容 →



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3