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

Python查找文本文件指定字符串时返回结果异常如何解决

问题根源

代码的循环逻辑存在致命错误:for循环只会执行第一次迭代就触发return退出函数,完全不会遍历文件的后续行。
当前代码实际执行流程:

  • 打开目标文本文件
  • 仅读取第一行做匹配校验
    • 第一行包含目标字符串:打印OK返回1
    • 第一行不包含目标字符串:直接打印no返回0

只要目标字符串不在文件第一行,哪怕后续行存在完全匹配的内容,代码都会返回错误的未匹配结果。

修复方案

将未匹配时的返回逻辑移到整个for循环外部,等逐行遍历完文件所有内容、确认不存在匹配项后,再返回未找到的结果。
修复后的可运行代码:

def check_if_image_at_end_selected():
    with open('Sanity_CS.txt', 'r') as checked_script:
        key = "MillSet_BBs.set_image_at_end('yes')"
        for num, line in enumerate(checked_script, 1):
            # 若需要忽略行首尾的空格、换行符、制表符,可将判断条件改为 if key in line.strip():
            if key in line:
                print("OK")
                return 1
        # 所有行遍历完成仍未匹配时才会走到此处
        print("no")
        return 0
可选优化点
  • 若匹配不需要区分大小写,可将行内容与key统一转为小写/大写后再做比对
  • 若需要定位匹配位置,可在匹配成功时打印当前行号num方便排查
  • 若文件包含非UTF-8编码的特殊字符,打开文件时可指定对应编码参数,例如open('Sanity_CS.txt', 'r', encoding='gbk')避免编码报错

内容的提问来源于stack exchange,提问作者I'm not a robot

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 23:18:09