首页 > 解决方案 > 如何在python中读取一组值的文本文件并打印这些值

问题描述

图片

我有一个文本文件和一组代表不同对象的值。每个对象的值由空格分隔。我需要将值存储在列表中并找到每个对象的平均值。(每个对象都有不同的 d1、d2、d3 值)。

标签: pythonfiletext

解决方案


你的问题有点不清楚,但你的问题的解决方案可能是这个

import re

regex = re.compile('d1 : (\d+) d2 : (\d+) d3: (\d+)')

with open('file.txt', 'r') as file:
    content = file.readlines()

i = 0
objects = {}
for pos, line in enumerate(content):
    match = regex.match(line)

    if not match:
        continue
    if pos % 6 == 0:
        i += 3
        if i > 3:
            objects[f'{i-6}-mean'] =  sum(objects[f'{i-6}']) / len(objects[f'{i-6}'])
            objects[f'{i-5}-mean'] =  sum(objects[f'{i-5}']) / len(objects[f'{i-5}'])
            objects[f'{i-4}-mean'] =  sum(objects[f'{i-4}']) / len(objects[f'{i-4}'])
        objects[f'{i-3}'] = []
        objects[f'{i-2}'] = []
        objects[f'{i-1}'] = []

    objects[f'{i-3}'].append(int(match[1]))
    objects[f'{i-2}'].append(int(match[2]))
    objects[f'{i-1}'].append(int(match[3]))

i += 3 
objects[f'{i-6}-mean'] =  sum(objects[f'{i-6}']) / len(objects[f'{i-6}'])
objects[f'{i-5}-mean'] =  sum(objects[f'{i-5}']) / len(objects[f'{i-5}'])
objects[f'{i-4}-mean'] =  sum(objects[f'{i-4}']) / len(objects[f'{i-4}'])

print(objects)

输出

{'0': [472, 475, 477, 477, 477], '1': [998, 992, 991, 991, 991], '2': [367, 365, 367, 367, 367], '0-mean': 475.6, '1-mean': 992.6, '2-mean': 366.6, '3': [1, 2, 3, 4, 477], '4': [998, 992, 991, 991, 991], '5': [367, 365, 367, 367, 367], '3-mean': 97.4, '4-mean': 992.6, '5-mean': 366.6}

如果不是,请详细说明。


推荐阅读