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
.
的问题
祝您假期愉快!
我正在尝试读取一个 .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
.