文件夹里面有多个srt字幕文件,借助kimichat可以很方便的对其进行批量合并。
在kimichat中输入提示词:
你是一个Python编程专家,写一个Python脚本,完成一个处理整理文档内容的任务,具体步骤如下:
打开文件夹:E:\新建文件夹,
找到文件夹里面所有的srt后缀文件;
删掉srt文件里面所有的时间轴,比如:00:00:06,339 --> 00:00:11,594
删掉里面所有的序号,比如 1、2、3,注意:不要删掉文本里面的数字,比如”(200万年前)”中的200;
然后将所有的srt文件内容按照文件名称顺序合并,另存为一个新的word文档,保持到文件夹:E:\新建文件夹;
部分原文档内容如下:
###
1
00:00:06,339 --> 00:00:11,594
(200万年前)
2
00:00:23,064 --> 00:00:28,945
200万年前
我们的星球与现在完全不同
3
00:00:34,325 --> 00:00:36,286
牙齿像剑一般的猫科动物
###
整理文档后的文档内容,应该是这样:
###
(200万年前)
200万年前
我们的星球与现在完全不同
牙齿像剑一般的猫科动物
###
这是kimichat给出的Python源代码:
import os
import re
from docx import Document
# 指定文件夹路径
folder_path = r'E:\新建文件夹'
# 正则表达式模式,用于匹配时间轴和序号
time_pattern = re.compile(r'\d+:\d+:\d+,\d+ --> \d+:\d+:\d+,\d+')
number_pattern = re.compile(r'^\d+\n')
# 初始化一个空的Word文档,用于存放合并后的内容
merged_document = Document()
# 获取文件夹中所有.srt文件的列表,并按文件名排序
srt_files = sorted([f for f in os.listdir(folder_path) if f.endswith('.srt')])
# 遍历所有.srt文件
for filename in srt_files:
# 构建完整的文件路径
file_path = os.path.join(folder_path, filename)
# 读取文件内容
with open(file_path, 'r', encoding='utf-8') as file:
content = file.readlines()
# 删除时间轴和序号
cleaned_content = []
for line in content:
line = re.sub(time_pattern, '', line) # 删除时间轴
line = re.sub(number_pattern, '', line) # 删除序号
if line.strip(): # 确保行不为空
cleaned_content.append(line)
# 将处理后的文本添加到Word文档中
for paragraph in cleaned_content:
merged_document.add_paragraph(paragraph.strip())
# 保存合并后的Word文档
word_filename = os.path.join(folder_path, 'merged_document.docx')
merged_document.save(word_filename)
print(f'所有文件已合并并保存到 {word_filename}')
这是程序运行后的结果: