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

Python中迭代文件行数组时,如何获取后续行并跳过主循环迭代

解决方案

你可以利用迭代器的next()方法手动读取后续行,同时让主循环自动跳过这些行——因为迭代器是状态化的,手动调用next()推进迭代器后,外层的for循环会从新的位置继续遍历。

修改后的完整代码

editedLines = []  # 先初始化存储结果的列表
lines = []
with open('myfile.txt') as file:
    lines = file.readlines()

line_iter = iter(lines)
for line in line_iter:
    pos = line.find("/")
    if pos == 6:
        case_str = line[0:5].strip()  # 替换内置类型名str为case_str,避免命名冲突
        match case_str:
            case "CASE1":
                editedLines.append(line)
            case "CASE2":
                editedLines.append(line)
            case "CASE3":
                editedLines.append(line)
                # 读取后续行直到遇到CASE3_END
                while True:
                    try:
                        next_line = next(line_iter)
                        editedLines.append(next_line)
                        if "CASE3_END" in next_line:
                            break
                    except StopIteration:
                        # 到达文件末尾仍未找到CASE3_END,终止循环避免报错
                        break

关键逻辑说明

  • 匹配到CASE3时,先将当前行加入结果列表,再进入内层循环处理后续行。
  • 通过next(line_iter)手动推进迭代器:每调用一次,迭代器就向前移动一位,外层for循环会跳过这些已被手动读取的行。
  • 每次读取的行都会加入结果列表,直到行中包含CASE3_END时跳出内层循环;如果读到文件末尾(抛出StopIteration异常),也会终止循环。

内容的提问来源于stack exchange,提问作者Lion King

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 05:05:32