如何读取文本文件行并提取值到数组?含动态分组与值提取方案
解决方法
实现思路
- 先读取文件所有行,从最后一行获取最大分组标识,以此确定分组总数(假设分组标识从0开始连续递增)。
- 遍历每一行,解析出数值数组的第一个元素和对应分组标识。
- 按分组分类存储这些数值,最终生成每行对应一个分组的二维数组。
代码实现(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
相关产品推荐
相关产品推荐

