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