在循环中写入多个文件会产生相同的文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在循环中写入多个文件会产生相同的文件相关的知识,希望对你有一定的参考价值。

试图通过循环产生具有不同初始条件的一些方程。

我想获得多个文件,每个文件由于'while'循环而表示不同的初始条件,但每个文件都相同,数据不会改变。看不出我哪里出错了。

from scipy.integrate import odeint

P = 0      # birth rate
d = 0.0001  # natural death percent (per day)
B = 0.0095  # transmission percent  (per day)
G = 0.0001  # resurect percent (per day)
A = 0.0001  # destroy percent  (per day)

# solve the system dy/dt = f(y, t)
def f(y, t):
     Si = y[0]
     Zi = y[1]
     Ri = y[2]
     # the model equations (see Munz et al. 2009)
     f0 = P - B*Si*Zi - d*Si
     f1 = B*Si*Zi + G*Ri - A*Si*Zi
     f2 = d*Si + A*Si*Zi - G*Ri
     return [f0, f1, f2]

Si0 = 50
Zi0 = 20
Ri0= 20

for i in range(20):   
    while Zi0 < 105:
        Zi0 += 5
        y0=[Si0,Zi0,Ri0]
        print(Zi0)


        y = odeint(f, y0, [k*500 for k in range(40)], mxstep=1000)


    print('\n'.join(','.join('%+13.5f'%x for x in row) for row in \
    y),file=open("test_"+str(i)+".txt", "a"))
答案

问题可能是您没有重置Zi0。因此,在for循环中第一次执行while循环,直到Zi0为105.然后第二个for循环开始,Zi0已经是105,所以它正在跳过while循环并打印,并继续跳过并打印其余的for循环。

不完全确定你想要改变每个循环,所以不能帮助你更多...抱歉。

以上是关于在循环中写入多个文件会产生相同的文件的主要内容,如果未能解决你的问题,请参考以下文章

linux下如何同时向多个文件中写入相同内容?

尝试写入文件时 C++ 中的循环错误

在 Python CSV Writer 循环中写入标题一次

在 Ubuntu 和 Windows 中使用相同的代码读取 ros bag 文件会产生不同的格式

将for循环的输出写入多个文件

从Node.js Stream写入多个文件