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

Python统计文本START与END/区间行数 分类后导出Excel方法

文本块分类+导出Excel实现代码

核心实现思路

不依赖固定行号偏移,通过状态标记判断当前是否处于START和END /包裹的有效区间内,逐行遍历时统计区间内的非空动作行数量,再根据计数规则打分类标签:

  • 区间内有效动作行=1 → 标记P1
  • 区间内有效动作行>1 → 标记P2

完整可运行代码

如果使用pandas导出Excel,先安装依赖:

pip install pandas openpyxl

核心逻辑代码:

# 第一步:读取文件完成分类统计
result = []
in_block = False  # 标记当前是否处于START/END包裹的块内
action_cnt = 0    # 统计当前块内的有效动作行数量

# 将下方文件路径替换为你实际的txt文件路径
with open('your_file.txt', 'r', encoding='utf-8') as f:
    for line in f:
        stripped_line = line.strip()
        # 检测到块起始标记,重置计数器、开启块状态
        if 'START' in stripped_line:
            in_block = True
            action_cnt = 0
            continue
        # 检测到块结束标记,完成当前块分类并存入结果
        if 'END /' in stripped_line:
            in_block = False
            result.append('P1' if action_cnt == 1 else 'P2')
            continue
        # 块内的非空行判定为有效动作行,计数+1
        if in_block and stripped_line:
            action_cnt += 1

# 打印结果校验
print(result)

# 第二步:导出为Excel单列文件
import pandas as pd
df = pd.DataFrame({'Category': result})
df.to_excel('分类结果.xlsx', index=False)

轻量替代方案(无需安装pandas)

如果不想装pandas依赖,可以直接导出为csv格式,Excel原生支持打开csv文件,代码更精简:

import csv
with open('分类结果.csv', 'w', encoding='utf-8-sig', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['Category'])
    for item in result:
        writer.writerow([item])

效果验证

用你提供的示例输入运行上述代码,控制台输出的分类结果为:

['P2', 'P1', 'P2', 'P2', 'P1']

导出的文件首行为列名Category,后续每行对应一个分类结果,完全匹配要求的格式。

内容的提问来源于stack exchange,提问作者The P Guy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 05:01:00