不会实时写入文本文件。如何解决这个问题

use*_*857 2 python python-2.7

我有一个需要很长时间才能运行的python脚本。

我在整个脚本中放置了打印输出以观察其进度。由于此脚本使用不同的程序,其中一些程序会打印许多消息,因此直接打印到屏幕上是不可行的。

因此,我正在使用报告文件

f_report = open(os.path.join("//shared_directory/projects/work_area/", 'report.txt'), 'w')
Run Code Online (Sandbox Code Playgroud)

我在上面打印我的按摩:

 f_report.write(" "+current_image+"\n")
Run Code Online (Sandbox Code Playgroud)

但是,在脚本运行时查看文件时,看不到消息。它们仅在程序完成并关闭文件后出现,这使我的方法无法监视正在进行的进度。为了使python实时将消息输出到报告文件,我应该怎么做?

非常感谢。

Vác*_*hár 6

您应该使用flush()函数立即将文件写入。

f_report.write(" "+current_image+"\n")    
f_report.flush()
Run Code Online (Sandbox Code Playgroud)