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

Python脚本提取文本值:忽略行前缀、筛选目标匹配结果问题

问题原因

你的代码存在两个核心问题:

  • 循环逻辑错误:遍历LINE in MATCHLINE时,调用string.split传入的是整个MATCHLINE列表,不是单个匹配行,导致拆分结果混入了换行符和相邻行内容
  • 未做结果过滤:关键词CORD,PWR匹配到了两行结果,没有过滤掉第一条不需要的R609C前缀行

修复后代码

import string
psu = ""
KEYWORDS = "CORD,PWR"

MATCHLINE = cfi_tools.cfi_textfind(KEYWORDS, HCF_INI)
if MATCHLINE:
    target_line = None
    # 遍历匹配结果,跳过不需要的R609C前缀行
    for line in MATCHLINE:
        line = line.strip() # 移除首尾换行、空白字符
        if line.startswith("R609C="):
            continue
        target_line = line
        break
    if target_line:
        line_parts = string.split(target_line, "=")
        if len(line_parts) >= 2:
            psu = line_parts[1] # 取等号后的目标值
    print psu
else:
    cfi_tools.cfi_fail("Cannot find expected keywords: " + KEYWORDS)

if psu == "":
    psu = "N/A"
    cfi_tools.cfi_log("NO psu info got from GCF THEREFORE UNKNOWN RECORDED" ,"LOG")
else:
    cfi_tools.cfi_log(" PSU Info FOUND IN GCF IS %s" % psu,"LOG")

修改说明

  • 修正了split参数错误,拆分对象改为单条匹配行,避免结果异常
  • 增加了行过滤逻辑:跳过R609C=前缀的行,相比直接取第二条匹配结果的写法更稳妥,不会因为文件内容调整、匹配顺序变化出错
  • 增加了strip处理,移除行尾的换行符,避免返回值带多余的\r\n后缀
  • 增加了拆分结果长度判断,避免行内无等号时出现索引报错

内容的提问来源于stack exchange,提问作者Winter Bucky

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:30:02