Python:计算文本文件中数值的平均值
当我运行下面的代码时,出现了一个错误: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
Python在处理小数方面有一些限制。虽然这里的操作都没问题,但如果你要处理更长的小数或者进行数学运算,建议使用Decimal模块。
import Decimal
result = Decimal.Decimal(1)/Decimal.Decimal(5)
print result
你可以查看这个文档了解更多信息: http://docs.python.org/2/library/decimal.html
可以试着在IDLE里输入1.1,看看你得到的结果是什么。
9
int()
是用来处理整数的,比如像 7、12、7965、0 和 -21233 这些数字。如果你需要处理小数(比如 3.14 或者 -0.5),那你可能需要用 float()
。