2017-04-18 83 views
0

我正在运行一个试图解决非线性方程的程序。这是一个黑匣子的情况,所以我不会详细讨论。我基本上为程序提供了一些价值,并且它分出了5个数字,后者我将它们与一组他们需要匹配的标准进行比较以达到一定的容差。我在搜索输入值时连续输入新值,这些输入值给出了符合条件的5个数字。因此,长话短说,我一直在生产5个我希望收敛于我的标准的数字。我正在输出A,B,C,D,E格式的每个迭代的5个数字并写入输出txt文件。然而,直到程序完成(如果它曾经做过!),我看不到A,B,C,D或E如何收敛,因为我的txt文件是空白的,直到我.close()它。有什么方法可以看出这些价值观是如何以另一种方式随时间变化的?如果我的5个数字只是遍布整个地方而没有融合到任何东西,我需要考虑一种不同的方法。查看当前正在Python中更新的.txt文件

+0

使用一个很好的IDE,所以你可以使用断点进行调试 – WhatsThePoint

回答

1

你有两个选择:

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) 
+0

谢谢!这些选项通常会产生多少开销?每次迭代(因此写入文本文件)大约需要1秒,而且我可能要为每个正在处理的数据集运行数千次迭代。我希望尽量减少开销。 – veto1024

相关问题