python3.7生成字幕文件
代码# coding=utf-8import chardet# 读取txtdef Read_txt(file_path ):try:file = open(file_path, 'rb')# 二进制打开文件r = file.read()f_charinfo = chardet.detect(r)# 获取编码...
·
代码
# coding=utf-8
import chardet
# 读取txt
def Read_txt(file_path ):
try:
file = open(file_path, 'rb') # 二进制打开文件
r = file.read()
f_charinfo = chardet.detect(r) # 获取编码
file.close()
return r.decode(f_charinfo['encoding']).replace("\n","").replace("\r","").replace(" ","") # 根据编码打开
except:
return ''
def Save_txt(file_path,txt):
new_txt_list = []
index = 0
sentence = ''
for char in txt :
if index == 10 :
new_txt_list.append(sentence)
index = 0 # 重置句子索引
sentence = '' # 重置句字符串
else :
sentence = sentence + char
index = index + 1
new_txt_list.append(sentence) # 最后不足10个字也添加
'''
1
00:00:01,410 --> 00:00:04,740
字幕1
2
00:00:04,910 --> 00:00:06,400
字幕2
'''
index_sent = 1
index_time = 1
with open(file_path, 'w') as file :
for sent in new_txt_list :
file.write(str(index_sent))
file.write('\n')
index_sent = index_sent + 1
file.write(tranform_int_to_time(index_time)+',000 --> '+ tranform_int_to_time(index_time + 2)+',000')
file.write('\n')
index_time = index_time + 2
file.write(sent)
file.write('\n')
file.write('\n')
def tranform_int_to_time(seconds):
m, s = divmod(seconds, 60)
h, m = divmod(m, 60)
return ("%d:%02d:%02d" % (h, m, s))
file_path_read = r'outputfile\read.txt'
file_path_output = r'readfile\out.txt'
Save_txt(file_path_output,Read_txt(file_path_read))
截图,后缀需要手动修改


魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)