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

Python如何从文本文件中提取数值随机变化的itag字段值

原代码问题排查

  • 循环内重复执行open(report_file).readline(),每次操作都会重新打开文件只读第一行,永远无法读取后续行内容
  • 代码中直接使用return语句,第一次循环运行到此处就会直接终止逻辑,不会处理剩余行
  • 提取逻辑未过滤<Stream: 前缀,输出结果不符合预期格式

可用解决方案

方案1:纯字符串处理实现

无需引入额外依赖,逻辑简单直观:

with open(report_file, 'r', encoding='utf-8') as file_obj:
    for line in file_obj:
        itag_start = line.find('itag="')
        if itag_start < 0:
            # 当前行没有itag字段,跳过
            continue
        # 查找itag值的结束引号位置
        itag_end = line.find('"', itag_start + 6)
        # 拼接输出格式并打印
        print(f'itag="{line[itag_start+6:itag_end]}"')

方案2:正则匹配实现

适配性更强,哪怕字段位置变动也能正确提取:

import re

with open(report_file, 'r', encoding='utf-8') as file_obj:
    content = file_obj.read()
    # 匹配所有符合itag="数字"格式的内容
    itag_list = re.findall(r'itag="\d+"', content)
    for item in itag_list:
        print(item)

以上两种方案都支持提取任意数量、任意数值的itag内容,满足不同音频文件的解析需求。

内容的提问来源于stack exchange,提问作者Dương Duy Nhật Minh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:18:02