gpt4 book ai didi

python - 从日志文件的特定行中选取值并计算平均值

转载 作者:太空宇宙 更新时间:2023-11-03 20:24:02 26 4
gpt4 key购买 nike

各位,我有一个如下所示的日志文件

Input image filename:(416, 416, 3)
Found 3 boxes for img
Inference time : 3.100685347104464
traffic light 0.85
traffic light 0.96
traffic light 0.98
Input image filename:(416, 416, 3)
Found 3 boxes for img
Inference time : 2.0816197767817197
traffic light 0.90
traffic light 0.92
Input image filename:(416, 416, 3)
Found 3 boxes for img
Inference time : 2.0610929683485253
traffic light 0.82
traffic light 0.96
traffic light 0.99

我想编写一个循环,将“推理时间..”和“输入图像文件名..”行之间的交通灯值相加并计算平均值。
例如:
第一部分:(0.85+0.96+0.98)/3 = 0.93
第二部分:(0.90+0.92)/2 = 0.91
第三部分:(0.82+0.96+0.99)/3 = 0.93

返回值:(0.93, 0.91, 0.93)

到目前为止,我只能读取找到“交通灯”一词的行中的所有值。

import os 
log_path = "data/test.log"

accuracy_lines = []
accuracy = []

for line_acc in open(log):
if 'traffic light ' in line_acc:
accuracy_lines.append(line_acc)

for n in range(len(accuracy_lines)):
lineParts = accuracy_lines[n].split(',')
accuracy.append(float(lineParts[0].split()[2]))
print(accuracy)

不幸的是,我不知道如何继续。如果你能帮助我,我会很高兴。

许多问候

最佳答案

使用以下方法:

log_path  = "data/test.log"

with open(log_path) as f:
numbers, res = [], []
for line in f:
if line.startswith('traffic light'):
numbers.append(float(line.split()[-1]))
elif line.startswith('Input image filename') and numbers:
res.append(sum(numbers) / (len(numbers)))
numbers.clear()
if numbers: res.append(sum(numbers) / len(numbers)) # capturing trailing numbers
print(res)

输出:

[0.93, 0.91, 0.9233333333333332]

关于python - 从日志文件的特定行中选取值并计算平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57959375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com