我有一个需要很长时间才能运行的python脚本。
我在整个脚本中放置了打印件以观察其进度。 由于这个脚本有不同的程序,其中一些程序会打印许多信息,因此直接打印到屏幕上是不可行的。
因此,我使用的是报告文件
f_report = open(os.path.join("//shared_directory/projects/work_area/", 'report.txt'), 'w')
我打印我的按摩:
f_report.write(" "+current_image+"\n")
但是,当我在脚本运行时查看文件时,我看不到消息。它们仅在程序完成并关闭文件时出现,使我的方法无法用于监视正在进行的进度。 为了让python实时将消息输出到报告文件,我该怎么办?
非常感谢。
答案 0 :(得分:4)
您应该使用 flush()函数立即写入文件。
f_report.write(" "+current_image+"\n")
f_report.flush()
答案 1 :(得分:1)
试试这个:
newbuffer = 0
f_report = open(os.path.join("//shared_directory/projects/work_area/", 'report.txt'), 'w', newbuffer)
它设置一个0缓冲区,它将推动OS将内容“立即”写入文件。好吧,不同的操作系统可能会有不同的行为,但总的来说,内容会立即被刷新。