代码之家  ›  专栏  ›  技术社区  ›  rawwar

有必要在python中调用文件处理程序的flush方法吗

  •  2
  • rawwar  · 技术社区  · 6 年前

    我看到他们使用file.flush()的代码。所以,我四处寻找,发现 This SO post .我有点明白为什么会有冲洗法。在标记为答案的答案中,写下了以下内容

    通常,您不需要为任何一种方法操心,但是如果您处于这样的场景中,对磁盘上实际结束的内容的偏执是一件好事,那么您应该按照指示进行两次调用。

    所以,我想知道,当我们使用上下文管理器打开一个文件并写一些文本时,当代码从这个上下文管理器中退出时,文本可能没有被写到文件中?如果是,为什么不在调用file.close()时在内部执行此操作?已经完成了吗?

    2 回复  |  直到 6 年前
        1
  •  2
  •   abarnert    6 年前

    io open flush close

    close



    with open('dump.txt', 'w') as f:
        while True:
            buf = read_off_some_thingy()
            f.write(buf.decode())
            time.sleep(5)
    

    cat dump.txt

    with open('dump.txt', 'w') as f:
        while True:
            buf = read_off_some_thingy()
            f.write(buf.decode())
            f.flush()
            time.sleep(5)
    


    with


    fsync


        2
  •  2
  •   AKX Bryan Oakley    6 年前

    .close()

    .write(); .flush();