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=3) end_time=start_time+ datetime.timedelta(seconds=2) 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+",000"+" --> "+str_end_time+",000"+'\n') #注意毫秒设置成000,剪映识别可以对的上, f2.write(line+'\n') no=no+1 f1.close() f2.close()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构