将电影字幕整理后,便于打印学习
生活随笔
收集整理的這篇文章主要介紹了
将电影字幕整理后,便于打印学习
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
將電影字幕整理后,便于打印學習
- 看電影學英語
看電影學英語
電影字幕可以從網上下載scr文件,下載后便于學習。但是對于孩子,總看計算機也不好,因此需要將字幕打印下來。如果直接打印scr文件,則文件相當大,沒用的換行也非常多。因此對其整理后,可以減少打印數量。手工整理非常費時費力,因此想到使用python寫個簡單的處理代碼。由于很簡單,未加注釋,對照scr文件,很容易理解。
處理過程中,如果對白之間有超過5秒的空白,則認為切換到另一個對話場景。
python代碼如下:
from __future__ import print_functionimport sys import osdef time_interval(start, end):int_start = int(start[:2])*3600 + int(start[3:5])*60 + int(start[6:8])int_end = int(end[:2])*3600 + int(end[3:5])*60 + int(end[6:8])return int_end - int_startdef space_print(x, n):if len(x)<n:for ln in range(n-len(x)):print(" ", end='')print(x, end='')def subtitles2screen(scr):with open(scr) as f_scr:previous_finish_time = ""previous_subtitles_index = ""subtitles_index = "";scene_index = 1for line in f_scr.readlines():line = line.replace("\n", "").strip()if line.isdigit():subtitles_index = lineelif line.find(" --> ") != -1:if previous_finish_time.strip()=="":print("scene: " + str(scene_index), end='')scene_index += 1elif time_interval(previous_finish_time, line[0:12]) > 5:print("\nscene: " + str(scene_index) + " " + previous_finish_time, end='')scene_index += 1previous_finish_time = line[17:29]elif line == "":passelse:if subtitles_index == previous_subtitles_index:print(" " + line, end='')else:print("")space_print(subtitles_index, 4)print(": " + line, end='')previous_subtitles_index = subtitles_indexif __name__ == "__main__" :if len(sys.argv) < 2:print("usage: python " + sys.argv[0] + " <subtitles file>")elif not os.path.exists(sys.argv[1]):print("subtitles file does not exist")else:subtitles2screen(sys.argv[1])總結
以上是生活随笔為你收集整理的将电影字幕整理后,便于打印学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10怎么更新显卡驱动_荒野大镖客2
- 下一篇: app备忘录源代码html,备忘录app