python 调整 srt 字幕时间轴


# coding=utf-8
# -*- coding: utf-8 -*-

########## 设置 ##########

# 输入和输出文件路径
input_file = 'input.srt'
output_file = 'output.srt'

# 时间轴偏移量(以秒为单位,正数表示延后,负数表示提前)
offset = -10.0


########## 代码正文 ##########

# 解析时间并添加偏移量
def offset_time(time_str, offset):
    parts = time_str.split(':')
    hours, minutes, seconds = int(parts[0]), int(parts[1]), float(parts[2].replace(',', '.'))
    new_time = hours * 3600 + minutes * 60 + seconds + offset
    new_time = 0 if new_time < 0 else new_time
    new_hours, _ = divmod(new_time, 3600)
    new_minutes, new_seconds = divmod(_, 60)
    return f'{int(new_hours):02d}:{int(new_minutes):02d}:{new_seconds:0>6,.3f}'.replace('.', ',')


# 执行时间轴偏移
with open(input_file, 'r', encoding='utf-8') as file:
    lines = file.readlines()

with open(output_file, 'w', encoding='utf-8') as file:
    for line in lines:
        if '-->' in line:
            start_time, end_time = line.strip().split(' --> ')
            start_time = offset_time(start_time, offset)
            if start_time == '00:00:00,000':
                print('错误:时间为负,请检查!!!')
                print('中止任务')
                break
            end_time = offset_time(end_time, offset)
            line = f"{start_time} --> {end_time}\n"
        file.write(line)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值