python - 在使用正则表达式时,我可以让 python 将我的文件读取为 UTF-16 LE BOM 吗?
问题描述
我正在尝试编写一段代码,它将获取从 Premiere Pro 导出的章节标记的文本文件,并将其转换为 ffmpeg 可读的格式。
问题是,它们作为 Notepad++ 报告为 UTF-16 LE BOM 的文件出现。如果我将其更改为 UTF-8 然后保存,我的代码将正常工作。但是,我想知道是否有更简单的方法来修改我的代码而不是转换每个 .txt 文件。
这是一个测试代码,只是将时间戳从 hh:mm:ss:ff 转换为毫秒并打印出来。同样,它适用于 UTF-8 文件:
import math
import re
with open('chapters.txt', 'r') 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)
Premiere Pro 中的文件如下所示:
Asset Name In Point Description
video 00:03:45:10
video 00:12:26:19
video 00:22:30:07
video 00:34:42:22
免责声明:我不知道我在做什么。
解决方案
推荐阅读
- javascript - 如何成功等待函数结束?
- android - NFC读卡时,会自行打开应用,请问如何解决?
- file-upload - DevExtreme - 带有 FileUpload 的单元格
- vim - NeoVim: set signcolumn=number 不起作用。如何将符号列与行号列合并?
- python-2.7 - arcpy 将 fc 复制到 shp 并将 fc 附加到 shp
- html - 在表单中提交后尝试打开页面
- scheme - 在 Scheme 中分配变量而不使用 set
- python - 使用多处理使用 ZipFile 读取文件
- c# - 无法从存储库调用 DBContext 构造函数
- ros - Ros 发射卡在 5G 网络中的机器人上