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

如何读取文本文件行并提取值到数组?含动态分组与值提取方案

解决方法

实现思路

  1. 先读取文件所有行,从最后一行获取最大分组标识,以此确定分组总数(假设分组标识从0开始连续递增)。
  2. 遍历每一行,解析出数值数组的第一个元素和对应分组标识。
  3. 按分组分类存储这些数值,最终生成每行对应一个分组的二维数组。

代码实现(Python)

# 替换为你的文件路径
file_path = "data.txt"

# 读取所有行并过滤空行
with open(file_path, "r", encoding="utf-8") as f:
    lines = [line.strip() for line in f if line.strip()]

# 从最后一行提取最大分组标识
last_line_parts = lines[-1].split(",", 2)
max_group_id = int(last_line_parts[1])

# 初始化分组容器,每个分组对应一个空列表
grouped_data = [[] for _ in range(max_group_id + 1)]

# 逐行解析数据
for line in lines:
    # 拆分出数组部分、分组标识、后缀(仅拆分前两个逗号,避免数组内逗号干扰)
    arr_segment, group_str, _ = line.split(",", 2)
    
    # 提取数值数组的第一个元素:去掉首尾[],分割后取第一个值转成浮点数
    first_value = float(arr_segment.strip("[]").split(",")[0])
    
    # 将值添加到对应分组的列表中
    group_id = int(group_str)
    grouped_data[group_id].append(first_value)

# 输出结果:每行对应一个分组的数组
for group_arr in grouped_data:
    print(group_arr)

关键细节说明

  • 使用split(",", 2)拆分每行,避免数值数组内部的逗号导致拆分错误。
  • 从最后一行提取最大分组标识,自动适配不同文件的分组数量。
  • 最终的grouped_data就是目标二维数组,每个子列表对应一个分组的所有数值数组第一个元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 02:20:28