为了账号安全,请及时绑定邮箱和手机立即绑定

python多久刷新一次文件?

python多久刷新一次文件?

手掌心 2019-06-29 18:11:05
python多久刷新一次文件?Python多久刷新一次文件?Python多久刷新一次stdout?我对(1)不确定。至于(2),我相信Python在每一个新行之后都会刷新到stdout。但是,如果您重载stdout到一个文件,它是否经常刷新?
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

我不知道这是否也适用于python,但我认为这取决于您正在运行的操作系统。

例如,在Linux上,输出到终端会刷新换行符上的缓冲区,而对于输出到文件的输出,只有在缓冲区已满时(默认情况下)才会刷新。这是因为减少缓冲区刷新次数更有效,而且如果没有在文件中的换行符上刷新输出,用户就不太可能注意到这一点。

如果需要的话,您可以自动刷新输出。

编辑:我想你会用这种方式自动刷新python(基于这里)

#0 means there is no buffer, so all output#will be auto-flushedfsock = open('out.log', 'w', 0)sys.stdout = fsock#do whateverfsock.close()


查看完整回答
反对 回复 2019-06-29
?
慕村225694

TA贡献1880条经验 获得超4个赞

还可以强制以编程方式将缓冲区刷新到文件中。flush()方法。

with open('out.log', 'w+') as f:
    f.write('output is ')
    # some work
    s = 'OK.'
    f.write(s)
    f.write('\n')
    f.flush()
    # some other work
    f.write('done\n')
    f.flush()

在跟踪输出文件时,我发现这很有用。tail -f.


查看完整回答
反对 回复 2019-06-29
  • 3 回答
  • 0 关注
  • 822 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信