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

时间:2016-12-25 15:30:37

标签: python file line with-statement

我希望你到目前为止度过愉快的假期!

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

基本上我会实现一个计算:

的操作

第(0)行*第(1)行*第(2)行在第一步中,将其写入另一个.txt文件,然后继续第(3)行*( 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 个答案:

答案 0 :(得分: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列表中的问题。

答案 1 :(得分:1)

你可以这样做:

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