如何将指定格式文本文件内容读取为键对应列表值的字典?
解决方法
你的问题出在分隔符处理上——文件里的列是用多个连续空格分隔的,直接指定单个空格或TAB作为分隔符会产生很多空字符串,导致解析错误。用Python的split()方法(不带参数)可以自动处理任意数量的空白字符,完美适配这种格式。
以下是实现代码:
# 打开并读取文件,过滤掉空行和首尾空白 with open('your_file.txt', 'r') as file: # 逐行处理,只保留非空行 processed_lines = [line.strip() for line in file if line.strip()] # 提取第一行作为字典的键(表头) headers = processed_lines[0].split() # 初始化结果字典,每个键对应一个空列表 result_dict = {key: [] for key in headers} # 遍历后续数据行,填充字典 for line in processed_lines[1:]: # 将每行的字符串转为整数列表 values = list(map(int, line.split())) # 把每个值对应到表头的键下 for header, value in zip(headers, values): result_dict[header].append(value) print(result_dict)
代码说明:
line.strip():去掉每行首尾的空白字符,避免空行干扰split()(无参数):自动将任意数量的空格、TAB等空白作为分隔符,拆分出干净的列内容list(map(int, ...)):把拆分后的字符串转为整数,符合你期望的数值类型
运行后会得到你想要的字典结构,注意你期望输出里的C:[313896, 507576]是笔误,原文件中第二行C列的值是505756,代码会按原文件内容解析。
内容的提问来源于stack exchange,提问作者Abhiram Reddy
相关产品推荐
相关产品推荐

