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

如何实现读取TXT文件中(Read)标记之间的行内容,基于File.ReadLines实现

功能实现方案

核心逻辑

  • 逐行读取目标TXT文件,维护一个是否处于读取区间的状态位,初始为false
  • 逐行校验内容,匹配(Read)标记时切换状态:
    • 首次匹配到(Read)时,将状态位设为true,跳过当前标记行
    • 第二次匹配到(Read)时,将状态位设为false,可直接终止读取节省性能
  • 状态位为true时,将当前行存入结果集
  • 读取完成后直接返回结果集即可

Python 代码实现

def read_lines_between_marks(file_path, start_end_mark="(Read)"):
    res = []
    in_read_range = False
    with open(file_path, "r", encoding="utf-8") as f:
        for line in f:
            strip_line = line.strip()
            if strip_line == start_end_mark and not in_read_range:
                in_read_range = True
                continue
            if strip_line == start_end_mark and in_read_range:
                break
            if in_read_range:
                # 如需保留原始换行,改为 res.append(line) 即可
                res.append(line.rstrip("\n"))
    return res

# 调用示例
if __name__ == "__main__":
    content = read_lines_between_marks("test.txt")
    for line in content:
        print(line)

C# 代码实现

using System;
using System.Collections.Generic;
using System.IO;

public static class FileTool
{
    public static List<string> ReadLines(string filePath)
    {
        var res = new List<string>();
        bool inReadRange = false;
        const string MARK = "(Read)";
        foreach (var line in File.ReadLines(filePath))
        {
            var trimLine = line.Trim();
            if (trimLine == MARK && !inReadRange)
            {
                inReadRange = true;
                continue;
            }
            if (trimLine == MARK && inReadRange)
            {
                break;
            }
            if (inReadRange)
            {
                res.Add(line);
            }
        }
        return res;
    }
}

// 调用示例:FileTool.ReadLines(@"你的文件路径")

兼容调整说明

  • 若要求标记严格匹配(前后不能有空白字符),删除代码中.Trim()/.strip()方法即可
  • 若文件仅存在单个(Read)标记,当前实现会返回标记后到文件末尾的所有内容,如需改为返回空,可在读取完成后判断是否匹配到第二个标记,未匹配到则返回空列表
  • 若有多个(Read)标记对,可调整逻辑不要在匹配到第二个标记时break,继续遍历切换状态即可提取多段内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:57:03