2010-11-18 146 views
1

當我運行我的代碼下面我得到一個:ValueError: invalid literal for int() with base 10: '0.977759164126'但我不知道爲什麼的Python:計算值的平均值在一個文本文件

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

數據系列按行排列,值在文本文件中以製表符分隔。文件中的所有行都具有相同的長度。

該腳本的目的是計算每列的平均值並將輸出寫入文本文件。

回答

9

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

+0

D'oh這麼簡單的答案。我的不好 – Harpal 2010-11-18 14:07:46

+1

所以點擊勾來接受答案! – 2010-11-18 14:27:07

+0

哈哈它不會讓我我不得不等待8分鐘:( – Harpal 2010-11-18 14:36:21

0

Python在處理浮點上是有限的。這些都可以在這裏很好地工作,但是對於較長的那些以及要使用十進制模塊的算法。

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

鏈接到文件 http://docs.python.org/2/library/decimal.html

試着鍵入在1.1到空閒,看看你的結果是什麼。