Python关于write()和truncate()的问题

发布于 2021-01-29 15:02:27

我在Mac上的终端机中,正在学习如何打开,关闭,读取,删除文件。

当我设定

f = open("sample.txt", 'w')

然后点击f.truncate()内容删除。

但是,当我这样做时,f.write()它不会在文本文件中更新。它只会在我执行后更新f.truncate()

我想知道为什么会这样(我认为f.truncate()应该删除文本!)?为什么输入时文本编辑器不会自动更新f.write()

关注者
0
被浏览
74
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    f.write()写入Python进程自己的缓冲区(类似于Cfwrite()函数)。但是,直到调用f.flush()f.close()或缓冲区填满时,数据才真正刷新到OS缓冲区中。完成此操作后,数据将对所有其他应用程序可见。

    请注意,操作系统执行另一层缓冲/缓存-由所有正在运行的应用程序共享。刷新文件后,会将其写入这些缓冲区,但直到一段时间或调用时才将其写入
    磁盘fsync()。如果您的操作系统崩溃或计算机断电,则这些未保存的更改将丢失。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看