Python: 从 .txt 文件中读取行并用它们计算

Python: Reading lines from .txt file and calculating with them

祝您假期愉快!

我正在尝试读取一个 .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     

有没有人知道如何让它工作?

如有任何提示,我们将不胜感激!

谢谢, 史蒂夫

你可以这样做:

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

这会一次将三个数字相乘,并将三者的乘积写入另一个文件:

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.

的问题