Watson caption converter在Jupyter Notebook运行报IndexError如何修复
IndexError报错修复方案
报错根因
报错触发在format_time函数的第17行,代码ms = (str(time).split("."))[1]默认传入的time参数一定带小数部分,按.分割后必然存在索引为1的元素。当传入的时间刚好是整数秒(无小数部分)时,str(time).split(".")只会返回长度为1的列表,访问索引[1]就会触发IndexError: list index out of range。
修复方法
直接修改format_time函数的毫秒提取逻辑,兼容整数秒场景即可:
- 找到原函数中的错误行代码:
ms = (str(time).split("."))[1]
- 将其替换为兼容代码即可:
time_parts = str(time).split(".") # 无小数部分时默认毫秒为000,有小数部分时截取前3位补零对齐SRT格式要求 ms = time_parts[1].ljust(3, '0')[:3] if len(time_parts) > 1 else "000"
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

