Python: чтение строк из файла.txt и расчет с ними

Я надеюсь, что у вас пока приятные каникулы!

Я пытаюсь прочитать файл.txt, в котором значения хранятся и отделены друг от друга пропуском строки, а затем рассчитать со значениями.

Я пытаюсь выяснить, как сделать это, используя скрипт Python.

Допустим, это содержимое моего текстового файла:

0.1 #line(0)
1.0
2.0
0.2 #line(3)
1.1
2.1
0.3 #line(6)
1.2
2.2
...

В основном я хотел бы реализовать операцию, которая вычисляет:

line (0) * line (1) * line (2) на первом шаге, записывает его в другой файл.txt и затем продолжает с line (3) * line (4) * line (5) и так далее:

with open('/filename.txt') as file_:
    for line in file_:
       for i in range(0,999,1):
           file = open('/anotherfile.txt')
           file.write(str(line(i)*line(i+1)*line(i+2) + '\n')
           i += 3     

У кого-нибудь есть идеи, как заставить это работать?

Любые советы будут оценены!

Спасибо Стив

2 ответа

Решение

Это умножит три числа за раз и запишет произведение трех в другой файл:

with open('numbers_in.txt') as fobj_in, open('numbers_out.txt', 'w') as fobj_out:
    while True:
        try:
            numbers = [float(next(fobj_in)) for _ in range(3)]
            product = numbers[0] * numbers[1] * numbers[2]
            fobj_out.write('{}\n'.format(product))
        except StopIteration:
            break

Вот next(fobj_in) всегда пытается прочитать следующую строку. Если строки больше нет StopIteration исключение повышено. except StopIteration: ловит это исключение и завершает цикл. Понимание списка [float(next(fobj_in)) for _ in range(3)]преобразует три числа, прочитанные из трех строк, в числа с плавающей запятой. Теперь умножение твоих чисел - дело индексации в списке numbers,

Вы можете сделать это:

file = open('/anotherfile.txt','w')
i=0
temp=1
with open('/filename.txt') as file_:
    for line in file_:
        temp = temp*int(line)
        if(i>1 && i%3==0):
           file.write(str(temp)+'\n')
           temp=1
        i += 1
Другие вопросы по тегам