使用python for循环获取txt值并计算值之和

使用python for循环获取txt值并计算值之和,python,for-loop,text,average,typeerror,Python,For Loop,Text,Average,Typeerror,我的程序是在读取txt文件后,可以显示平均值。 首先,它是文本文件格式的一部分,这里有更多的行 Timestamp CounterSamples --------- -------------- 3/15/2017 2:01:44 PM \\ins1617group

我的程序是在读取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__'

似乎无法调用每行的值。这就是值数据类型的问题吗

您只是重新分配浮点变量值的值。您需要改用数组

转这个

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])

请注意,这并不一定只适用于复制粘贴。我没有详细检查这些数字,但它显示了基本原理。

更多的@klutt代码的pythonic版本:

values = [float(stuff[i*5+5] for i in range(0, 100)] 

您想向OP解释一下您是如何做到这一点的吗?首先感谢您的帮助,在参考您的答案后,我将我的代码更改为:因为我的范围为0,500,5:values=[]values[I]=floatstuff[I+5],但它有一个错误:indexer:list赋值索引超出范围是代码问题还是列表的大小?