使用python在一个循环中多次写入文件

问题描述 投票:0回答:2

[我正在用python写大型矩阵,例如(2 ^ 20,2 ^ 20)。为了解决这个问题,我的方法是将每个元素及其各自的行和列写入文件中。

我试图这样解决它:

l = 20
j = 1
delt = -1
for x in range(0,2**l):
    for y in range(0,l):
        k = (y+1)%l
        if check_nth_bit(x,y) == 0:
            a = ([x,x,-j*h/2])
            with open("file.txt", "w") as f:
                f.write(str(a))
        else:
            b = ([x,x,j*h/2])
            with open("file.txt", "w") as f:
                f.write(str(b))

我完成的方式,只有最后一个元素写入文件中。谁能帮我吗?

python
2个回答
0
投票

解决方案

将文件模式从“ w”切换为“ a”。

详细信息

“ w”文件模式在每个循环中都会覆盖文件,因此您最终只能看到最终写入的结果。

“” a文件模式附加到文件,因此循环给出累积结果。


0
投票

每次使用with open("file.txt", "w") as f:时,您都将以写入模式打开文件-特别是以overwrite

© www.soinside.com 2019 - 2024. All rights reserved.