You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何读取UTF-16 LE BOM编码文件并使用regex处理Premiere导出章节标记

解决方案

只需要在文件打开的代码中显式指定编码格式,无需修改其他逻辑,即可直接适配Premiere Pro导出的UTF-16 LE BOM编码原文件,不需要手动转码每个txt文件。

修改后完整代码

import math
import re

# 仅修改open函数参数,新增encoding指定,自动处理BOM和UTF-16 LE编码
with open('chapters.txt', 'r', encoding='utf-16') as f:
   next(f)
   for line in f:
      x = re.match(r".*?\t\t\t(\d{2}):(\d{2}):(\d{2}):(\d{2})", line)
      hrs = int(x.group(1))
      mins = int(x.group(2))
      secs = int(x.group(3))
      frms = int(x.group(4))

      minutes = (hrs * 60) + mins
      seconds = secs + (minutes * 60)
      milliseconds = (seconds * 1000)
      frames = math.ceil(frms * 41.7)
      timestamp = (milliseconds + frames)
      print(timestamp)

补充说明

  • 如果运行后出现乱码或匹配失败的情况,可尝试将encoding参数值替换为utf-16-le
  • 代码中帧转毫秒的系数41.7对应24fps的视频(1000/24≈41.666),如果你的视频帧率不是24fps,可将该系数替换为1000/你的视频实际帧率
  • 后续如果需要生成ffmpeg可直接识别的章节格式,直接将输出的毫秒数按ffmpeg要求的元数据规则拼接即可

内容的提问来源于stack exchange,提问作者Sean McNally

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 00:48:01