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

Python读取txt提取每行职位名称 解决substring not found报错

问题分析与修复方案

现有代码的错误点

  • 读取逻辑冲突:同时用for循环迭代文件对象、readline()方法读取内容,文件迭代本身就会逐行读取内容,循环内再次调用readline()会导致跳行读取,最终读到空字符串,空字符串查找,时就会触发「substring not found」报错。
  • readline()参数使用错误:readline()的入参是单次读取的最大字符数,不是行号,传入逐次累加的Beg_line完全不符合方法设计逻辑,无法实现读取指定行的需求。
  • 提取逻辑错误:每行内容以,,开头,第一个逗号的位置在索引0之后,你截取0到第一个逗号的内容只能得到空字符串,完全无法提取到中间的职位名称。

修复代码

推荐用with语法自动管理文件句柄,按逗号分割后过滤空值的方式提取内容,不管前后有多少多余逗号都可以正常识别,适配任意职位名、数值组合场景:

with open("Jobs.txt", "r", encoding="utf-8") as file:
    for line in file:
        # 按逗号分割后过滤掉空值和多余空格
        parts = [item.strip() for item in line.split(',') if item.strip()]
        if len(parts) >= 2:
            job_name, count = parts[0], parts[1]
            print(f"职位:{job_name},人数:{count}")

运行后输出结果为:

职位:Janitors,人数:3
职位:Programers,人数:4
职位:Secretaries,人数:1

内容的提问来源于stack exchange,提问作者Rimants Šiupienis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:24:06