Python: вычисление средних значений в текстовом файле - PullRequest
1 голос
/ 18 ноября 2010

Когда я запускаю код ниже, я получаю: 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.977759164
0,981717034466 0,981717034466 0,981717034466 0,981717034466 0,98171703446

Ряд данных находится в строках, а значения разделены табуляцией в текстовом файле.Все строки в файле имеют одинаковую длину.

Цель сценария - вычислить среднее значение для каждого столбца и записать выходные данные в текстовый файл.

Ответы [ 2 ]

9 голосов
/ 18 ноября 2010

int() используется для целых чисел (числа, такие как 7, 12, 7965, 0, -21233).вам наверное нужно float()

0 голосов
/ 15 марта 2014

Python ограничен в обработке чисел с плавающей запятой. Все это прекрасно работает здесь, но для более длинных и арифметических операций вы захотите использовать модуль Decimal.

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

Ссылка на документацию http://docs.python.org/2/library/decimal.html

Попробуйте ввести 1.1 в IDLE и посмотрите, каков ваш результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...