当前位置: 首页 > news >正文

网页制作 公司网站千度搜索引擎

网页制作 公司网站,千度搜索引擎,政府部门网站建设要求,雄安建站服务20230812在WIN10下使用python3将SRT格式的字幕转换为SSA格式 2023/8/12 20:58 本文的SSA格式以【Batch Subtitles Converter(批量字幕转换) v1.23】的格式为准! 1、 缘起:网上找到的各种各样的字幕转换软件/小工具都不是让自己完全满意! 【都…

20230812在WIN10下使用python3将SRT格式的字幕转换为SSA格式
2023/8/12 20:58


本文的SSA格式以【Batch Subtitles Converter(批量字幕转换) v1.23】的格式为准!

1、
缘起:网上找到的各种各样的字幕转换软件/小工具都不是让自己完全满意!
【都有各种各样的小瑕疵】
因此决定用python3自己写一个练手!
本文的python脚本只处理UTF8编码的SRT格式字幕,ANSI编码的SRT格式请自行参照本文修改了!
!!!!Batch Subtitles Converter(批量字幕转换) v1.23 绿色英文版:不能修改/自定义所需要的SSA字幕的位置和颜色/字体/字号。


subresync.exe:不支持UTF8编码的字幕!且不能修改/自定义所需要的SSA字幕的位置和颜色/字体/字号。
vobsub.dll

技术点:
Red.Eye.2005.2160p.BluRay.REMUX.HEVC.DTS-HD.MA.5.1-FGT.cn9.srt
将《迫在眉睫》的英文字母通过google翻译之后的中文SRT格式的字幕转换为SSA格式!

path_to_save_txt+utf8_file.cn.srt

1
00:02:12,766 --> 00:02:16,099
泰勒·鲍勃和玛丽安·泰勒和我在一起

2
00:02:16,100 --> 00:02:16,900
一秒


path_to_save_txt+utf8_file.cn.ssa

[Script Info]
; This is a Sub Station Alpha v4 script.
Title: path_to_save_txt+utf8_file.cn
ScriptType: v4.00
Collisions: Normal
PlayDepth: 0

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Tahoma,25,&H80ff00,&H00ffff,&H000008,&H000008,-1,0,1,2,0,6,80,80,80,0,134

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:02:12.76,0:02:16.09,Default,NTP,0000,0000,0000,!Effect,泰勒·鲍勃和玛丽安·泰勒和我在一起
Dialogue: Marked=0,0:02:16.10,0:02:16.90,Default,NTP,0000,0000,0000,!Effect,一秒


重点:将SRT格式的时间轴修改为SSA格式的,需要使用python3的字符串处理/分割功能!


PYTHON SRT转SSA
python 时间轴 字符串拆分


https://www.techiedelight.com/zh/split-string-with-delimiters-python/
在 Python 中使用分隔符拆分字符串

在 Python 中使用分隔符拆分字符串
Google Translate Icon
这篇文章将讨论如何在 Python 中使用分隔符分割字符串。

1.使用 re.split() 功能
通过模式的出现来拆分字符串的简单解决方案是使用内置函数 re.split().模式可以由一个或多个分隔符组成:

在单个分隔符上拆分

要使用单个分隔符拆分字符串,您只需将该分隔符传递给 re.split() 功能。

import re
if __name__ == '__main__':
    s = 'Hello,World'
    res = re.split(',', s)                # split with comma
    print(res)                            # ['Hello', 'World']


Microsoft Windows [版本 10.0.19045.2311]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Administrator>python
Python 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
KeyboardInterrupt
>>> temp = '00:00:16,533 --> 00:00:18,366'
>>> import re
>>> temp
'00:00:16,533 --> 00:00:18,366'
>>> res = re.split(':', temp)
>>> print(res)
['00', '00', '16,533 --> 00', '00', '18,366']
>>> res[0]
'00'
>>> res[1]
'00'
>>> res[2]
'16,533 --> 00'
>>>
>>> re.split('-->', res[2])
['16,533 ', ' 00']
>>> res[3]
'00'
>>> res[4]
'18,366'
>>>

 


srt2ssa.py

# coding=utf-8

import re


#f2 = open(new_file, "w", encoding="UTF-8")
f2 = open('test.ssa', "w", encoding="UTF-8")

f2.write('[Script Info]\n')
f2.write('; This is a Sub Station Alpha v4 script.\n')
f2.write('Title: 8月7日.cn\n')
f2.write('ScriptType: v4.00\n')
f2.write('Collisions: Normal\n')
f2.write('PlayDepth: 0\n')
f2.write('\n')
f2.write('[V4 Styles]\n')
f2.write('Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding\n')
f2.write('Style: Default,Tahoma,25,&H80ff00,&H00ffff,&H000008,&H000008,-1,0,1,2,0,6,80,80,80,0,134\n')
f2.write('\n')
f2.write('[Events]\n')
f2.write('Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\n')
#f2.write('Dialogue: Marked=0,0:02:12.76,0:02:16.09,Default,NTP,0000,0000,0000,!Effect,泰勒·鲍勃和玛丽安·泰勒和我在一起\n')


#with open(file, "r", encoding="UTF-8") as f:
#f = open(file, "r", encoding="UTF-8")
f = open('path_to_save_txt+utf8_file.cn.srt', "r", encoding="UTF-8")
lines = f.readlines()

temp = 1
xuhao = 1;

for line in lines:
    if temp == 1:
        #f2.write(str(xuhao))
        #f2.write(str('\n'))
        #temp=0
        temp=2
    else:
        #time8 = ''
        
        # 2023/8/11 9:09 发现SRT的空格
        if len(line) == 1:
            temp=1
            xuhao = xuhao+1
        #f2.write(line)
        # 2023/8/11 9:34 中英文字幕干掉空格行之后的时间轴
        elif temp == 2:
            temp = 3
            #res = re.split(':', temp)
            time1 = re.split(':', line)
            #re.split('-->', res[2])
            #time2 = re.split('-->', time1[2])
            time2 = re.split(' --> ', time1[2])
            #Dialogue: Marked=0,0:02:12.76,0:02:16.09,Default,NTP,0000,0000,0000,!Effect,泰勒·鲍勃和玛丽安·泰勒和我在一起
            #time8 = 'Dialogue: Marked=0,' + time1[0] + time1[1] + time2[0] + time2[1] + time1[3] + time1[4] + ',Default,NTP,0000,0000,0000,!Effect,'
            
            #time8 = 'Dialogue: Marked=0,' + time1[0] + ':' + time1[1] + ':' + time2[0] + ':' + time2[1] + ':' + time1[3] + ':' + time1[4] + ',Default,NTP,0000,0000,0000,!Effect,'
            #print(line.rstrip())
            #time8 = 'Dialogue: Marked=0,' + time1[0] + ':' + time1[1] + ':' + time2[0] + ':' + time2[1] + ':' + time1[3] + ':' + time1[4].rstrip() + ',Default,NTP,0000,0000,0000,!Effect,'
            #time8 = 'Dialogue: Marked=0,' + time1[0] + ':' + time1[1] + ':' + time2[0] + ',' + time2[1] + ':' + time1[3] + ':' + time1[4].rstrip() + ',Default,NTP,0000,0000,0000,!Effect,'
            
            #Dialogue: Marked=0,00:02:12,76, 00:02:16,099,Default,NTP,0000,0000,0000,!Effect,泰勒·鲍勃和玛丽安·泰勒和我在一起
            #time8 = 'Dialogue: Marked=0,' + time1[0] + ':' + time1[1] + ':' + time2[0][0:5] + ',' + time2[1] + ':' + time1[3] + ':' + time1[4].rstrip() + ',Default,NTP,0000,0000,0000,!Effect,'

 


            
            #Dialogue: Marked=0,00:02:12,766,00:02:16,099,Default,NTP,0000,0000,0000,!Effect,泰勒·鲍勃和玛丽安·泰勒和我在一起
            #time8 = 'Dialogue: Marked=0,' + time1[0] + ':' + time1[1] + ':' + time2[0] + ',' + time2[1] + ':' + time1[3] + ':' + time1[4].rstrip() + ',Default,NTP,0000,0000,0000,!Effect,'

 


            
            #Dialogue: Marked=0,0:02:12.76,0:02:16.09,Default,NTP,0000,0000,0000,!Effect,泰勒·鲍勃和玛丽安·泰勒和我在一起
            #Dialogue: Marked=0,00:02:12,76,00:02:16,09,Default,NTP,0000,0000,0000,!Effect,泰勒·鲍勃和玛丽安·泰勒和我在一起
            #time8 = 'Dialogue: Marked=0,' + time1[0] + ':' + time1[1] + ':' + time2[0][0:5] + ',' + time2[1] + ':' + time1[3] + ':' + time1[4][0:5] + ',Default,NTP,0000,0000,0000,!Effect,'
            
            #time2[0][2] = '.' 
            #time1[4][2] = '.'
            #time2 = re.split(' --> ', time1[2])
            time5 = re.split(',', time2[0][0:5])
            time6 = re.split(',', time1[4][0:5])
            #time8 = 'Dialogue: Marked=0,' + time1[0] + ':' + time1[1] + ':' + time2[0][0:5] + ',' + time2[1] + ':' + time1[3] + ':' + time1[4][0:5] + ',Default,NTP,0000,0000,0000,!Effect,'
            time8 = 'Dialogue: Marked=0,' + time1[0] + ':' + time1[1] + ':' + time5[0] + '.' + time5[1] + ',' + time2[1] + ':' + time1[3] + ':' + time6[0] + '.' + time6[1] + ',Default,NTP,0000,0000,0000,!Effect,'
        #else if temp == 2:
        elif temp == 3:
            #f3.write(line_en)
            #f4.write(line)
            #f2.write(line)
            f2.write(time8 + line)
            #f2.write('\n\n')

 

 


参考资料:
https://mathpretty.com/10393.html
Python字幕转换工具–asstosrt


https://fiime.cn/blog/281970
如何实现ass/ssa批量转换srt的脚本


https://www.techiedelight.com/zh/split-string-with-delimiters-python/
在 Python 中使用分隔符拆分字符串


https://zhuanlan.zhihu.com/p/460511660
python如何切割字符串


TypeError: 'str' object does not support item assignment
https://pythonjishu.com/python-error-66/
Python报”TypeError: ‘str’ object does not support item assignment “的原因以及解决办法


https://blog.51cto.com/u_15849381/5801826
python TypeError: ‘str‘ object does not support item assignment 报错解决方法


https://blog.csdn.net/scp_6453/article/details/107866043
解决python中“TypeError ‘str‘ object does not support item assignment”问题


python字符串截取
https://www.ycpai.cn/python/xBRw8f2K.html
python怎么截取字符串
print(string[2:8]) # 输出:llo, W


#for line in lines: python 逐行读取
https://blog.csdn.net/weixin_39662834/article/details/109925505
python逐行获取_Python逐行读取文件内容的三种方法


python if else if
https://blog.csdn.net/MeiWenjilu/article/details/127546798
python中的if和if_else以及if_elif_else


https://blog.csdn.net/ldgk3ekkd/article/details/126383516
python使用docx模块读写docx文件的方法与docx模块常用方法


https://www.php.cn/faq/395631.html
Python读写docx文件的方法

http://www.shuangfujiaoyu.com/news/37901.html

相关文章:

  • 网站开发专业有哪些百度上打广告怎么收费
  • 昆明网页制作设计aso优化报价
  • 免费网站代码下载郑州网络推广方案
  • 网站智能建设系统源码搜索引擎优化的目标
  • 假网站如何做fba欧美专线
  • 哪个网站做恒指好网络优化论文
  • 微信公众号网站导航怎么做链接转二维码
  • 怎么介绍自己做的网页sem和seo哪个工作好
  • 北京谷歌seo抖音搜索seo排名优化
  • 手机兼职平台网站开发网站推广优化外包公司
  • 网站备案许可证号查询长沙优化科技有限公司正规吗
  • 深圳电器公司怎么样常德seo招聘
  • 建设电影网站视频广告联盟官网入口
  • 做网站需要学的语言和软件自媒体培训学校
  • 电影资源网站开发百度关键词优化公司
  • sns有哪些著名的网站贵阳seo网站推广
  • 建网站挣钱吗网络推广方案
  • 大连市建设工程电子文件编辑软件搜索引擎优化策略
  • 东营市河口区建设局网站推广app用什么平台比较好
  • 做网页专题 应该关注哪些网站seo服务外包客服
  • 网站做直播seo的优化方向
  • 网站备案是域名备案还是服务器备案廊坊百度seo公司
  • 网站做轮播图的意义win7优化大师官方免费下载
  • 可以自己做装修效果图的网站黄冈网站seo
  • 深圳 网站开发公司深圳百度推广客服电话多少
  • html网站标签2021年年度关键词排名
  • 响应式网站生成发布悬赏任务的推广平台
  • 网络教育网站建设网站seo快速
  • 做网站导航菜单sem分析是什么意思
  • 免费门户网站建设百度一下百度一下你就知道