首页 > 解决方案 > 如何将python中for循环的多个输出保存到文本文件中?

问题描述

我正在尝试将 for 循环的输出与其相应的变量一起保存在文本文件中。但是,当我执行以下操作时,我只会将最后一行作为输出。

a = [1,2,3,4]
    
b = [4,5,6,7]

c = [5]

file=open("my_output.txt", 'a')

for i, j in zip(a, b):
    z = (i**2)*j+c[0]
    print (z)
    z = str(z)
    
file.write(z + "\n")
file.close()

我的输出:

117

我在找什么:

a,b,c,z
1,4,5,9
2,5,5,25
3,6,5,59
4,7,5,117

将不胜感激任何支持。先感谢您。

标签: python

解决方案


您的代码中的问题是您在循环之外编写,因此仅获得最后一个值。在循环内写入将修复它。

有一个更简单的方法。print可以写入文件:

# python 3.6+

a = [1,2,3,4]
b = [4,5,6,7]
c = [5]

with open("my_output.txt", 'a+') as f:
    print('a,b,c,z', end='\n', sep=',', file=f)
    for i, j in zip(a, b):
        print(f'{i},{j},{c[0]},{(i**2)*j+c[0]}', end='\n', sep=',', file=f)

推荐阅读