Python:计算文本文件中值的平均值

时间:2010-11-18 14:00:55

标签: python file

当我在下面运行我的代码时,我得到:ValueError: invalid literal for int() with base 10: '0.977759164126'但我不知道为什么

file_open = open("A1_B1_1000.txt", "r")
file_write = open ("average.txt", "w")

line = file_open.readlines()
list_of_lines = []
length = len(list_of_lines[0])
total = 0


for i in line:
    values = i.split('\t')
    list_of_lines.append(values)

count = 0
for j in list_of_lines:
    count +=1

for k in range(0,count):
    print k
    list_of_lines[k].remove('\n')



for o in range(0,count):
    for p in range(0,length):
        print list_of_lines[p][o]
        number = int(list_of_lines[p][o])    
        total + number
    average = total/count
    print average

我的文字文件如下:

  

0.977759164126 0.977759164126 0.977759164126 0.977759164126 0.977759164126
  0.981717034466 0.981717034466 0.981717034466 0.981717034466 0.98171703446

数据系列以行为单位,值在文本文件中以制表符分隔。文件中的所有行都是相同的长度。

该脚本的目的是计算每列的平均值并将输出写入文本文件。

2 个答案:

答案 0 :(得分:9)

int()用于整数(数字如7,12,7965,0,-21233)。你可能需要float()

答案 1 :(得分:0)

Python在处理浮点方面受到限制。这些都可以正常工作,但对于较长的算法以及算术,您将要使用Decimal模块。

import Decimal
result = Decimal.Decimal(1)/Decimal.Decimal(5)
print result

链接到文档 http://docs.python.org/2/library/decimal.html

尝试在IDLE中键入1.1并查看结果。