如何将文本文件列数据读取为Python字典(键为标签)
读取文本文件并构建列数据字典
需求描述
从a.txt文件读取数据,将文件第一行的每个标签作为字典的键,对应列的所有读数作为字典的值。
文件内容
increments ideal actual measured 0.0, 1000.0, 1000.0, 1006.4882 1.0, 950.0, 973.2774, 994.5579 2.0, 902.5, 897.6053, 998.9594 3.0, 857.375, 863.4304, 847.4721 4.0, 814.5062, 813.8886, 866.4862
已有代码
with open(filename, 'r') as file: labels = file.readline().rstrip('\n').split('\t') num_cols = len(labels) data = [[] for _ in range(num_cols)] data_dict = {}
解决方案
首先修正表头分割逻辑(原文件表头为空格分隔,split('\t')会导致分割错误),然后遍历文件剩余行提取数据,最后将标签与对应列数据绑定到字典中。完整代码如下:
filename = 'a.txt' with open(filename, 'r') as file: # 按任意空白符分割表头,兼容空格/制表符 labels = file.readline().rstrip('\n').split() num_cols = len(labels) data = [[] for _ in range(num_cols)] data_dict = {} # 遍历每一行数据并按列存储 for line in file: # 去除换行符后按", "分割数据项 values = line.rstrip('\n').split(', ') # 转换为浮点数并按列存入列表 for idx, val in enumerate(values): data[idx].append(float(val)) # 将标签与列数据映射为字典键值对 for label, col_data in zip(labels, data): data_dict[label] = col_data
关键说明
- 表头分割:改用
split()自动处理任意数量的空格/制表符,避免将整个表头当成单个元素。 - 数据类型转换:把读取到的字符串数值转为浮点数,保证后续数值运算的合理性。
- 字典构建:通过
zip()将标签列表和列数据列表一一配对,快速生成目标字典结构。
最终data_dict的结构示例:
{ 'increments': [0.0, 1.0, 2.0, 3.0, 4.0], 'ideal': [1000.0, 950.0, 902.5, 857.375, 814.5062], 'actual': [1000.0, 973.2774, 897.6053, 863.4304, 813.8886], 'measured': [1006.4882, 994.5579, 998.9594, 847.4721, 866.4862] }
内容的提问来源于stack exchange,提问作者Gamer
相关产品推荐
相关产品推荐

