![](/img/trans.png)
[英]How do I save outputs of a variable in a loop to a text file in python in columns?
[英]How to save multiple outputs from a for loop in python to a text file?
我正在嘗試將 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
將不勝感激任何支持。 先感謝您。
計算 z 的代碼。 然后將 a,b,c,z 寫入文件。
a = [1, 2, 3, 4]
b = [4, 5, 6, 7]
c = [5]
zs = []
col = ['a','b','c','z']
file = open("my_output.txt", 'a')
for i, j in zip(a, b):
z = (i ** 2) * j + c[0]
print(z)
zs.append([i,j,c[0],z])
file.write(str(zs))
file.close()
您的代碼中的問題是您在循環之外編寫代碼,因此只能獲得最后一個值。 在循環內寫入將修復它。
有一個更簡單的方法。 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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.