我正在运行一个试图解决非线性方程的程序。这是一个黑盒的情况,所以我不会深入细节。我基本上给程序提供了一些值,它输出了5个数字,我将后者与一组标准进行比较,它们需要匹配到一定的容差。我不断地给它提供新的值,以搜索输入的值,这些输入值给我提供了符合条件的5个数字。
所以,长话短说,我不断地产生5个数字,我希望这些数字能收敛到我的标准。我目前正在以A、B、C、D、E格式输出每次迭代的5个数字,并写入输出txt文件。但是,在程序完成之前(如果它完成了!),我看不到A、B、C、D或E是如何收敛的,因为我的txt文件是空的,直到我.close()它。有没有其他方法可以让我看到这些值是如何以另一种方式变化的?如果我的5个数字到处都是,没有收敛到任何东西,我需要考虑一种不同的方法。
发布于 2017-04-18 16:08:59
您有两个选择:
1-在写入每一行后flush缓冲区:
from time import sleep
f = open('testfile.txt', 'w')
while True:
f.write("A, B, C, D, E\n")
f.flush()
sleep(1)2-或者,当您使用文本文件时,可以将其作为行缓冲打开。有关更多详细信息,请参阅open上的文档。
您需要使用buffered=1进行行缓冲:
from time import sleep
f = open('testfile.txt', 'w', buffering=1)
while True:
f.write("A, B, C, D, E\n")
sleep(1)https://stackoverflow.com/questions/43466356
复制相似问题