我的程序在读取txt文件后,可以显示平均值。 首先它是文本文件格式的一部分,它在这里有更多的行。
Timestamp CounterSamples
--------- --------------
3/15/2017 2:01:44 PM \\ins1617group15s\processor(_total)\% processor time
:
1.38923436719549
3/15/2017 2:01:46 PM \\ins1617group15s\processor(_total)\% processor time
:
0.318628588938252
3/15/2017 2:01:48 PM \\ins1617group15s\processor(_total)\% processor time
:
0.319297841379995
首先获取值是我的代码:
infile = open(cpu_txtfile, 'r')
stuff = infile.readlines()
for i in range(0, 500, 5):
values = float(stuff[i+5])
成功回调每一行的值和格式如下:
1.3892343672
0.318628588938
0.31929784138
1.26366523362
1.42940775782
0.112588096327
1.24699147593
0.300931193494
1.8688601978
0.2750450877
0.848266656567
1.6158389729
0.0820226675922
0.0
1.45128654463
2.03801885286
我有另一个for循环来计算
for j in range(0, 99):
sum_values = values[j+1]
avg_values = sum_values / 100
print avg_values
它有错误代码
line 139, in cpu_baselineValues
sum_values = values[j+1]
TypeError: 'float' object has no attribute '__getitem__'
似乎无法调用每一行的values
。这是值数据类型的问题吗?
答案 0 :(得分:1)
更多pythonic版本的@klutt代码:
values = [float(stuff[i*5+5] for i in range(0, 100)]
答案 1 :(得分:0)
您只需重新分配浮点变量值的值。您需要使用数组。
转过来
for i in range(0, 500, 5):
values = float(stuff[i+5])
这样的事情
values=zeros(500)
for i in range(0, 100):
values[i] = float(stuff[i*5+5])
请注意,这并不一定只能通过复制粘贴完美地工作。我没有详细检查数字,但它显示了基本原理。