我正在运行一个试图解决非线性方程的程序。这是一个黑盒子的情况,所以我不会详细介绍。我基本上给程序提供了一些值,并且它会吐出5个数字,后者我将它们与一组他们需要匹配的标准进行比较。我在搜索输入值时连续提供新值,这些输入值为我提供符合条件的5个数字。
所以,长话短说,我不断产生5个数字,我希望这些数字符合我的标准。我目前正在以A,B,C,D,E格式输出每个迭代的5个数字并写入输出txt文件。但是,直到程序完成(如果它曾经!),我无法看到A,B,C,D或E如何收敛,因为我的txt文件是空白的,直到我.close()它。有什么方法可以让我看到这些价值观是如何以另一种方式随时间变化的?如果我的5个数字只是遍布整个地方并且没有融合到任何地方,我需要考虑不同的方法。
答案 0 :(得分:1)
您有两种选择:
写完每一行后, 1 - print {m[0]: m[1] or m[2]
for m in re.findall(r'([^,:\s]+): (?:"([^"]*)"|([^,]+))', text)}
缓冲区:
flush
2 - 或者,当您使用文本文件时,可以将其作为行缓冲打开。
有关详细信息,请参阅open上的文档
您需要from time import sleep
f = open('testfile.txt', 'w')
while True:
f.write("A, B, C, D, E\n")
f.flush()
sleep(1)
进行线路缓冲:
buffered=1