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

1 投票
2 回答
2960 浏览
提问于 2025-04-16 07:16

当我运行下面的代码时,出现了一个错误: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()

撰写回答