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()