一個文件夾中有多個srt視頻字幕文件,srt文件里面有很多時間軸:
現在想將其批量轉為word文檔,去掉里面與字符無關的時間軸,在ChatGPT中輸入提示詞:
你是一個Python編程專家,要完成一個批量將SRT字幕文件轉為Word文本文檔的任務,具體步驟如下:
打開文件夾:F:\兒童學習教育\Abadas.適合2歲以上.BBC兒童學習單詞的動畫;
讀取里面所有的srt字幕文件;
將srt字幕文件里面的時間和數字序號全部去掉,只保留字幕文本,另存為word文檔;
比如,原有的srt字幕文件內容為:
1
00:00:20,560 --> 00:00:22,760
'Hey, Abadas!'
2
00:00:22,760 --> 00:00:26,120
ALL: Hello, Ben! Come and play with us!
3
00:00:26,120 --> 00:00:30,000
And... # We'll have a...
轉換后的word文檔內容為:
'Hey, Abadas!'
ALL: Hello, Ben! Come and play with us!
And... # We'll have a...
注意:每一步都要輸出相關信息
每一行代碼都要給出詳細的注釋
ChatGPT的回復:
以下是一個使用 python-docx 和 re(正則表達式模塊)將 SRT 字幕文件轉為 Word 文檔的 Python 腳本。請先安裝 python-docx 庫,可以通過 pip install python-docx 來安裝。
import os
import re
from docx import Document
# 設置源文件夾路徑
source_dir = 'F:/兒童學習教育/Abadas.適合2歲以上.BBC兒童學習單詞的動畫'
# 遍歷源文件夾中的所有字幕文件
for file_name in os.listdir(source_dir):
# 確保是 SRT 文件
if file_name.endswith('.srt'):
file_path = os.path.join(source_dir, file_name)
print(f'正在處理字幕文件: {file_path}')
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
# 使用正則表達式將時間和數字序號去掉
pattern = re.compile(r'\d+\n\d{2}:\d{2}:\d{2},\d+ --> \d{2}:\d{2}:\d{2},\d+\n')
text_only = re.sub(pattern, '', content)
# 創建一個 Word 文檔,并將處理后的文本添加到文檔中
doc = Document()
doc.add_paragraph(text_only)
# 將 Word 文檔保存為一個新文件
word_file_path = file_path.replace('.srt', '.docx')
doc.save(word_file_path)
print(f'已將字幕文件保存為 Word 文檔: {word_file_path}')
注意:此腳本假設所有的 SRT 文件都使用 UTF-8 編碼。如果你的 SRT 文件使用其他編碼,你可能需要修改 open() 函數中的 encoding 參數。此外,腳本假設 SRT 文件的時間戳和文本之間沒有額外的空行。如果有額外的空行,你可能需要修改或添加正則表達式來處理它們。最后,這個腳本會直接修改你的文件系統,因此在運行之前請確保你已經備份了原始數據,或者在一個安全的環境下運行這個腳本。在運行這個腳本之前,請確保你的Python環境有足夠的權限來讀取和寫入文件。以上代碼未進行錯誤處理,實際使用時應考慮加入錯誤處理機制。
轉換后的word文檔如下: