当结果单独写入文件时,如何每第 n 次换行?
How to break the line every n-th time when results are written individually into a file?
我有这个程序,它从 2 个单独的文件 (ex1.idl and ex2.idl)
中获取值,执行计算并将结果写入不同的文件 (ex3.txt)。一切正常,输出是一大行的结果。
我正在寻找一种简单的方法来在输出中每隔 10 个元素换行,如下所示:
100 200 500 600 120 180 400 450 900 100
100 200 700 600 620 580 400 450 900 400
200 200 700 800 620 580 400 450 800 300
with open('ex1.idl') as f1, open('ex2_1.idl') as f2:
with open('ex3.txt', 'w') as f3:
start_line = 905 #reading from this line forward
for i in range(start_line - 1):
next(f1)
next(f2)
f1 = list(map(float, f1.read().split()))
f2 = list(map(float, f2.read().split()))
for result in map(lambda v : v[0]/v[1], zip(f1,f2)):
if(f3.count()%10 != 0):
f3.write(str(result) + ' ')
else:
f3.write(str(result) + '\n')
提前感谢您的解决方案(建议)。
我为未来的观众想出来了:
for i, result in enumerate(map(lambda v : v[0]/v[1], zip(f1,f2)), start=1):
if(i%10 != 0):
f3.write(' ' + str('{0:.9f}'.format(result)))
else:
f3.write(' ' + str('{0:.9f}'.format(result)) + '\n')
我有这个程序,它从 2 个单独的文件 (ex1.idl and ex2.idl)
中获取值,执行计算并将结果写入不同的文件 (ex3.txt)。一切正常,输出是一大行的结果。
我正在寻找一种简单的方法来在输出中每隔 10 个元素换行,如下所示:
100 200 500 600 120 180 400 450 900 100
100 200 700 600 620 580 400 450 900 400
200 200 700 800 620 580 400 450 800 300
with open('ex1.idl') as f1, open('ex2_1.idl') as f2:
with open('ex3.txt', 'w') as f3:
start_line = 905 #reading from this line forward
for i in range(start_line - 1):
next(f1)
next(f2)
f1 = list(map(float, f1.read().split()))
f2 = list(map(float, f2.read().split()))
for result in map(lambda v : v[0]/v[1], zip(f1,f2)):
if(f3.count()%10 != 0):
f3.write(str(result) + ' ')
else:
f3.write(str(result) + '\n')
提前感谢您的解决方案(建议)。
我为未来的观众想出来了:
for i, result in enumerate(map(lambda v : v[0]/v[1], zip(f1,f2)), start=1):
if(i%10 != 0):
f3.write(' ' + str('{0:.9f}'.format(result)))
else:
f3.write(' ' + str('{0:.9f}'.format(result)) + '\n')