我可以在python中保存文本文件而不关闭它吗?

Nau*_*ile 4 python python-2.7

我正在编写一个程序,我希望能够在程序完成之前查看日志文件.我注意到,在python(2.7和3)中,file.write()没有保存文件,file.close()确实如此.我不想创建具有唯一名称的一百万个小日志文件,但我希望能够在程序完成之前查看更新的日志文件.我怎样才能做到这一点?

现在,要清楚我正在使用Ansys Workbench编写脚本(试图批量运行一些CFX).这是一个指向我正在谈论的教程的链接.它们似乎已经包装了python,通过运行脚本,我可以将命令发送到各个模块.当脚本运行时,屏幕上没有控制台,它似乎正在吃掉所有print语句,因此我可以通过文件报告正在发生的事情的唯一方法.此外,我不想带一个控制台窗口,因为最终我将以批处理模式运行程序(无接口).但模拟需要很长时间才能运行,我不能等待程序完成,然后再检查发生了什么.

sta*_*ify 15

你需要这个:

file.flush()
# typically the above line would do. however this is used to ensure that the file is written
os.fsync(file.fileno())
Run Code Online (Sandbox Code Playgroud)

请查看:http://docs.python.org/2/library/stdtypes.html#file.flush

file.flush()刷新内部缓冲区,如stdio的fflush().这可能是某些文件类对象的无操作.注意flush()不一定将文件的数据写入磁盘.使用flush()后跟os.fsync()来确保此行为.

编辑:请参阅此问题以获取详细说明:python的file.flush()到底在做什么?


Han*_*nnu 5

每次写入后 file.flush() 有帮助吗?

汉努