Python如何读取文本文件中变长空格分隔数据并完成解析统计
你当前使用的csv.reader默认以逗号作为分隔符,读取空格分隔的文件会把整行内容识别为单个元素,首先需要调整分隔符配置,再进行后续统计计算,完整实现代码如下:
import csv from collections import Counter file = open('data.txt', 'r', encoding='utf-8') # 指定分隔符为空格 csvreader = csv.reader(file, delimiter=' ') # 跳过第一行 next(csvreader) all_nums = [] rows = [] for row in csvreader: # 过滤拆分出的空字符串,转成整数 clean_row = [int(num) for num in row if num.strip()] if clean_row: rows.append(clean_row) all_nums.extend(clean_row) file.close() # 统计每个数据的出现次数 count_result = Counter(all_nums) # 1. 输出唯一数据总个数 print(f"唯一数据总个数:{len(count_result.keys())}") # 2. 输出每个数据的出现次数 print("每个数据的出现次数:") for num, cnt in count_result.items(): print(f"count data ({num})={cnt}") # 3. 输出读取的总行数 print(f"读取的总行数:{len(rows)}") # 4. 输出按出现次数降序排序结果 print("按数据出现次数降序排序结果:") sorted_res = sorted(count_result.items(), key=lambda x: x[1], reverse=True) for num, _ in sorted_res: print(f"data ({num})")
如果不想引入Counter,也可以自行初始化字典遍历all_nums统计次数,逻辑完全一致。
内容的提问来源于stack exchange,提问作者SeekKnowledge
相关产品推荐
相关产品推荐

