1. 程式人生 > 程式設計 >基於python修改srt字幕的時間軸

基於python修改srt字幕的時間軸

這篇文章主要介紹了基於python修改srt字幕的時間軸,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

程式碼如下

# -*- coding: utf-8 -*-
# @時間 : 2020-01-19 02:53
# @作者 : 陳祥安
# @檔名 : run.py.py
# @公眾號: Python學習開發

import os
import datetime

temp = os.path.dirname(__file__)
srt_file_path = os.path.join(temp,"15.srt")


def read_srt_file_gen():
  with open(srt_file_path,"r") as fs:
    for data in fs.readlines():
      yield data


def read_srt_file():
  with open(srt_file_path,"r") as fs:
    data = fs.read()
  return data


def start():
  new_data_str = read_srt_file()
  for item in read_srt_file_gen():
    if "--> " in item:
      time_arr = item.split('--> ')
      start_time = time_arr[0].replace(" ","")
      end_time = time_arr[1].replace("\n","")
      _new_start_time = datetime.datetime.strptime(start_time + "0","%H:%M:%S,%f") - datetime.timedelta(
        seconds=1)
      _new_end_time = datetime.datetime.strptime(end_time + "0",%f") - datetime.timedelta(
        seconds=1)
      new_start_time = datetime.datetime.strftime(_new_start_time,%f")[:-3]
      new_end_time = datetime.datetime.strftime(_new_end_time,%f")[:-3]
      new_data_str = new_data_str.replace(start_time,new_start_time).replace(end_time,new_end_time)
  return new_data_str


if __name__ == '__main__':
  print(start())

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。