python 将一篇txt的文章转为字幕

发布时间 2023-06-14 10:39:05作者: 大话人生
import datetime
import sys
sys.setrecursionlimit(50000)


#将字幕分割成一句一行
with open(r"D:\PycharmProjects\cigenpic\制作字幕\z.txt",'r',encoding='utf-8') as f:
    result_list = f.readlines()
    print(result_list)
    print(len(result_list))

with open(r"D:\PycharmProjects\cigenpic\制作字幕\out_z.txt", 'a', encoding='utf-8') as f:
    f.write("\n")   #写一行空行,因为字幕从1开始读,而文本第一行为0,所以要添加一行,便于把正常字幕作为第二行

for j in range(0,len(result_list)):
    one = result_list[j]

    print("行内容:")
    print(one)
    one = one.replace("\n","")  #替换换行符
    print("替换后")
    print(one)
    with open(r"D:\PycharmProjects\cigenpic\制作字幕\out_z.txt", 'a', encoding='utf-8') as f:
        if '.' in one:
            one_list = one.split(".")
            for i in range(0,len(one_list)):
                print(one_list[i])
                one_content = one_list[i].strip().strip("\n")
                if  one_content!="":
                    f.write(one_content+"\n")
        elif one == "":
            pass

        else:
            f.write(one + "\n")



f1= open(r"D:\PycharmProjects\cigenpic\制作字幕\out_z.txt",'r',encoding='utf-8')
f2= open(r"D:\PycharmProjects\cigenpic\制作字幕\out_z.srt",'w',encoding='utf-8-sig')
#返回一个文件对象
line=f1.readline()#调用文件的readline()方法
no=1
start_time = datetime.datetime.strptime('00:00:00','%H:%M:%S')
end_time = datetime.datetime.strptime('00:00:00','%H:%M:%S')
while line:
    line= f1.readline()
    start_time=start_time+datetime.timedelta(seconds=4)
    end_time=start_time+ datetime.timedelta(seconds=8)
    str_start_time = datetime.datetime.strftime(start_time,'%H:%M:%S')
    str_end_time  =datetime.datetime.strftime(end_time,'%H:%M:%S')
    f2.write(str(no)+'\n')
    f2.write(str_start_time+",433"+"-->"+str_end_time+",433"+'\n')
    f2.write(line+'\n')
    no=no+1
f1.close()
f2.close()